/* Shared Ralliqo form language. Loaded last on every page; business logic stays in each module. */
:root{--form-ink:#172525;--form-green:#075056;--form-mint:#EAF5F4;--form-border:#cbd8d9;--form-muted:#5b6d73;--form-danger:#b42332}
body.ralliqo-auth-open{overflow:hidden}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),select,textarea){box-sizing:border-box;min-height:48px;border:1px solid var(--form-border)!important;border-radius:10px!important;background-color:#fff!important;color:var(--form-ink)!important;box-shadow:none!important;font-family:inherit;font-size:16px;line-height:1.4;padding:11px 13px;max-width:100%}
body textarea{height:auto;min-height:112px;resize:vertical}
body input::placeholder,body textarea::placeholder{color:#7b8b90;opacity:1}
body :is(input,select,textarea):focus{border-color:var(--form-green)!important;outline:none;box-shadow:0 0 0 3px #07505620!important}
body :is(button,a,summary,[tabindex]):focus-visible{outline:3px solid #07505680!important;outline-offset:3px}
body :is(input,select,textarea):disabled{background-color:#f1f5f4!important;color:#748383!important;cursor:not-allowed;opacity:.75}
body :is(input,textarea)[readonly]{background-color:#f6f9f8!important}
body :is(input,select,textarea)[aria-invalid=true],body :is(input,select,textarea):user-invalid{border-color:var(--form-danger)!important}
body input:-webkit-autofill,body input:-webkit-autofill:focus{-webkit-text-fill-color:#172525!important;caret-color:#172525;-webkit-box-shadow:0 0 0 1000px #f4faf9 inset!important}
body :is(input[type=checkbox],input[type=radio]){accent-color:var(--form-green)}
body :is(form,.modal-form,.confirm-panel,.setup-fields) label{color:var(--form-ink);font-size:14px;font-weight:600;line-height:1.5}
body :is(.modal-form,.auth-modal form){gap:22px}
body :is(.modal-form,.auth-modal form)>label{display:grid;gap:8px;margin:0}
body :is(.modal-form .two,.modal-form .three){gap:20px}
body :is(button.primary,.button-link.primary,button.auth-submit){background:#075056!important;background-image:none!important;border:1px solid #075056!important;color:#fff!important;--control-ink:#fff;box-shadow:none!important;border-radius:10px;min-height:48px;font-weight:650;text-transform:none;letter-spacing:normal}
body :is(button.primary,.button-link.primary,button.auth-submit):hover:not(:disabled){background:#063f44!important;color:#fff!important}
body button.secondary{background:#fff!important;color:#075056!important;--control-ink:#075056;border:1px solid #cbd8d9!important;box-shadow:none!important;border-radius:10px}
body button.secondary:hover:not(:disabled){background:#EAF5F4!important}
body button.danger{background:#fff4f3!important;color:#b42332!important;--control-ink:#b42332;border:1px solid #e9b6bc!important;box-shadow:none!important;border-radius:10px}
body button.danger:hover:not(:disabled){background:#fde8e8!important}
body button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none!important}
body :is(.auth-backdrop,.modal-backdrop,.sx-dialog-backdrop,.confirm-overlay,.choose-players-modal,.import-players-modal,.schedule-modal,.activity-modal,.game-mode-confirm-backdrop){background:#17252580!important;backdrop-filter:blur(4px);padding:20px;box-sizing:border-box}
body :is(.auth-modal,.sx-dialog,.ot-modal,.confirm-panel,.choose-players-panel,.import-players-panel,.schedule-modal-panel,.activity-modal-panel,.game-mode-confirm-panel,.openplay-subscription-dialog){box-sizing:border-box;background:#fff!important;color:#172525!important;--text-primary:#172525;--text-secondary:#5b6d73;--surface:#fff;--surface-secondary:#EAF5F4;--control-ink:#172525;border:1px solid #e1e8e7!important;border-radius:20px!important;padding:28px!important;box-shadow:0 18px 60px #17252526!important;max-width:100%;max-height:calc(100dvh - 40px)!important;overflow:auto;overscroll-behavior:contain}
body :is(.auth-modal,.sx-dialog,.ot-modal,.confirm-panel,.game-mode-confirm-panel) :is(h2,h3){color:#172525!important;font-size:24px!important;line-height:1.2;letter-spacing:-.6px;text-transform:none}
body :is(.auth-modal,.sx-dialog,.ot-modal,.confirm-panel,.game-mode-confirm-panel) :is(h4,label){color:#172525!important}
body :is(.modal-actions,.confirm-actions,.sx-dialog-actions,.import-actions,.choose-players-actions){gap:12px;margin-top:24px;flex-wrap:wrap}
body :is(.modal-actions,.confirm-actions,.sx-dialog-actions,.import-actions,.choose-players-actions) button{min-height:48px;padding:11px 18px;border-radius:10px}
body :is(.auth-close,.modal-x,.sx-dialog-close,.add-match-close,.modal-close-icon){display:inline-flex;align-items:center;justify-content:center;width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;border:1px solid #d8e3e3!important;border-radius:50%!important;background:#fff!important;color:#172525!important;box-shadow:none!important;line-height:1;font-size:24px}
body :is(.auth-close,.sx-dialog-close){top:16px;right:16px}
body :is(.auth-close,.modal-x,.sx-dialog-close,.add-match-close):hover{background:#EAF5F4!important}
body :is(.auth-field-error,.match-inline-error:not(.success)){color:#b42332}
/* Compact authentication matches the approved reference. */
body .auth-modal{width:min(440px,100%)!important;padding:30px!important;font-family:Inter,Arial,sans-serif}
body .auth-modal .brand{margin:0 0 22px!important;padding:0;min-height:0}
body .auth-modal .ralliqo-logo-frame{width:86px!important;height:36px!important}
body .auth-modal h2{font-size:28px!important;font-weight:750;margin:0 0 8px!important;letter-spacing:-.8px}
body .auth-modal .auth-copy{font-size:15px;line-height:1.5;color:#5b6d73;margin:0}
body .auth-modal form{display:grid;gap:22px;margin-top:26px}
body .auth-modal label{font-size:14px;font-weight:600}
body .auth-modal input{width:100%;height:48px}
body .auth-password-wrap{position:relative}
body .auth-password-wrap input{padding-right:52px}
body .auth-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border:0!important;border-radius:8px;background:transparent!important;color:#5b6d73!important;box-shadow:none!important}
body .auth-password-toggle:hover{background:#EAF5F4!important}
body .auth-password-toggle svg{pointer-events:none}
body .auth-field-error:empty,body .auth-status:empty{display:none}
body .auth-field-error{margin:0;min-height:0;font-size:12px;line-height:1.4;font-weight:500}
body .auth-status{min-height:0;margin:0;font-size:13px;line-height:1.45}
body .auth-status.err{background:#fff1f2;border-left:3px solid #b42332;color:#b42332;padding:10px 12px}
body .auth-submit{margin:0;width:100%;font-size:16px}
body .auth-switch{margin-top:22px;font-size:14px;line-height:1.5;color:#5b6d73}
body .auth-switch button{font-weight:600;color:#075056!important;text-decoration:underline;text-underline-offset:3px;min-height:32px;background:transparent!important;border:0!important;padding:0}
/* Approved sign-in layout; authentication handlers and account form stay intact. */
body #authBackdrop{background:rgba(23,37,37,.48)!important;backdrop-filter:blur(3px);padding:16px;overflow-y:auto}
body #authBackdrop .auth-modal .auth-close{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:8px;width:44px;height:44px;color:#465b60!important;font-size:30px;font-weight:400}
body #authBackdrop .auth-modal input{background:#fff!important;border:1px solid #cbd8d9!important;border-radius:9px!important;color:#172525!important;height:48px;font-size:16px;box-shadow:none}
body #authBackdrop .auth-modal input:focus-visible{outline:2px solid #075056;outline-offset:2px}
body #authBackdrop .auth-modal input[aria-invalid=true]{border-color:#b42332!important}
body #authBackdrop .auth-modal .auth-submit,body #authBackdrop .auth-modal .auth-guest{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:48px;min-height:48px;margin:0;padding:10px 14px;border-radius:9px;font:600 16px/1.4 Inter,Arial,sans-serif;cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none}
body #authBackdrop .auth-modal .auth-submit{background:#075056!important;color:#fff!important;--control-ink:#fff;border:1px solid #075056!important}
body #authBackdrop .auth-modal .auth-guest{background:#fff!important;color:#075056!important;--control-ink:#075056;border:1px solid #075056!important}
body #authBackdrop .auth-modal .auth-guest:hover{background:#eaf5f4!important}
body #authBackdrop .auth-modal .auth-submit:disabled{opacity:.65;cursor:wait}
body .auth-divider{display:flex;align-items:center;gap:14px;margin:16px 0;color:#5b6d73;font-size:13px}
body .auth-divider::before,body .auth-divider::after{content:'';height:1px;background:#cbd8d9;flex:1}
body .auth-guest-note{text-align:center;margin:10px 0 0;font-size:13px;line-height:1.5;color:#5b6d73}
body #authBackdrop .auth-modal .auth-switch{margin-top:22px;text-align:center}
body #authBackdrop .auth-modal .auth-switch button{min-height:44px;text-decoration:none}
@media(max-width:360px){body #authBackdrop .auth-modal{padding:20px!important}body #authBackdrop .auth-modal h2{font-size:25px!important}}
/* Composite controls use one border, with their existing layout intact. */
body .court-stepper{height:48px;border:1px solid #cbd8d9;border-radius:10px}
body .court-stepper input{min-height:0;height:46px;border:0!important;border-radius:0!important;padding:0;text-align:center}
body .court-stepper button{min-height:0!important}
@media(max-width:600px){
 body :is(.auth-backdrop,.modal-backdrop,.sx-dialog-backdrop,.confirm-overlay,.choose-players-modal,.import-players-modal,.schedule-modal,.activity-modal,.game-mode-confirm-backdrop){padding:16px}
 body :is(.auth-modal,.sx-dialog,.ot-modal,.confirm-panel,.choose-players-panel,.import-players-panel,.schedule-modal-panel,.activity-modal-panel,.game-mode-confirm-panel,.openplay-subscription-dialog){padding:22px!important;max-height:calc(100dvh - 32px)!important;min-width:0}
 body .auth-modal{width:100%!important;padding:24px!important}
 body .auth-modal h2{font-size:26px!important}
 body .modal-form :is(.two,.three){grid-template-columns:minmax(0,1fr)}
}
/* Native mobile player editor retains its sheet placement and receives the same tokens. */
body #mobilePlayerEditor{background:#fff;color:#172525;max-height:calc(100dvh - 32px);border-radius:20px 20px 0 0;padding:24px;box-shadow:0 -12px 48px #17252526}
body #mobilePlayerEditor .player-sheet-fields{gap:22px 16px}
body #mobilePlayerEditor label{color:#172525;font-size:14px;font-weight:600;gap:8px}
body #mobilePlayerEditor .sheet-save{min-height:48px;background:#075056!important;color:#fff!important}
body .auth-switch button{--control-ink:#075056!important}
body :is(input,select,textarea):focus{outline:none!important}
body .modal-form label:has(> input:is([type=checkbox],[type=radio])){display:flex!important;align-items:center;gap:10px}
body .modal-form label>input:is([type=checkbox],[type=radio]){width:18px!important;height:18px;min-height:0;flex:0 0 18px;margin:0}
body .ot-modal:has(#courtForm){width:min(480px,100%)}
body .ot-modal:has(#catForm){width:min(760px,100%)}
body .ot-modal:has(#pairForm){width:min(620px,100%)}
body .ot-modal:has(#bulkParticipantFields:not(.hidden)){width:min(960px,100%)}
body .ot-modal h2{margin:0 44px 22px 0}
body :is(.modal-form,.auth-modal) input,body :is(.modal-form,.auth-modal) select{font-weight:400}
body select{appearance:auto!important}
body .ot-modal:has(#bpNewCategoryForm){width:min(480px,100%)}
body :is(.ot-modal,.confirm-panel,.sx-dialog,.auth-modal,.choose-players-panel,.import-players-panel) :is(input,select,textarea){font-weight:400!important;text-shadow:none!important}
body :is(.ot-modal,.confirm-panel,.sx-dialog,.auth-modal) label{font-size:14px!important;font-weight:600!important}
body .bp-draw-layout label{margin-bottom:22px}
body .bp-draw-layout label> :is(input,select,textarea){margin-top:8px}

body :is(input,textarea){background-image:none!important}
