/*!
 * Wipy UI tokens: the shared views of the parent themes (login, OTP, registration, password
 * recovery and reset, profile) drawn with the design tokens of the account's theme.
 *
 * A theme opts in with "ui_tokens" => true in its theme_config.php: Document::getThemeHeader()
 * then loads this file and adds the "wipy-ui" class to <body>. The theme declares the tokens
 * it wants (usually in its theme-vars.css); every token has a fallback, so a theme can set
 * only a few. See docs/conventions/wipy-ui-tokens.md.
 *
 *   --wipy-font-text        body text font                  --wipy-font-head      headings font
 *   --wipy-primary          main colour (buttons)           --wipy-on-primary     text on it
 *   --wipy-accent           focus ring, highlights          --wipy-link           links
 *   --wipy-text             text                            --wipy-muted          secondary text
 *   --wipy-surface          cards, inputs                   --wipy-line           borders
 *   --wipy-field-border     border of inputs (3:1 against   --wipy-focus          focus ring of buttons
 *                           what is around them, WCAG 1.4.11)                     (3:1 as well)
 *   --wipy-page-bg          background of the login/register pages
 *   --wipy-radius           cards                           --wipy-radius-control buttons, inputs
 *   --wipy-control-height   inputs                          --wipy-btn-padding    buttons
 *   --wipy-btn-weight       button text weight              --wipy-head-weight    headings weight
 */body.wipy-ui{--wui-primary:var(--wipy-primary,var(--bs-primary,#007bff));--wui-on-primary:var(--wipy-on-primary,#fff);--wui-accent:var(--wipy-accent,var(--wui-primary));--wui-text:var(--wipy-text,#212529);--wui-muted:var(--wipy-muted,#6c757d);--wui-surface:var(--wipy-surface,#fff);--wui-line:var(--wipy-line,#dee2e6);--wui-field-border:var(--wipy-field-border,var(--wui-line));--wui-focus:var(--wipy-focus,color-mix(in srgb,var(--wui-accent) 50%,transparent));--wui-link:var(--wipy-link,var(--wui-primary));--wui-radius:var(--wipy-radius,.5rem);--wui-radius-control:var(--wipy-radius-control,.25rem);font-family:var(--wipy-font-text,inherit)}body.wipy-ui.bg-primary{background:var(--wipy-page-bg,var(--wui-primary))!important;min-height:100vh}body.wipy-ui h1,body.wipy-ui h2,body.wipy-ui h3,body.wipy-ui h4,body.wipy-ui .h1,body.wipy-ui .h2,body.wipy-ui .h3,body.wipy-ui .h4{font-family:var(--wipy-font-head,inherit);font-weight:var(--wipy-head-weight,500);letter-spacing:-.01em}body.wipy-ui .card{border:1px solid var(--wui-line);border-radius:var(--wui-radius);background:var(--wui-surface);color:var(--wui-text)}body.wipy-ui .card .text-muted,body.wipy-ui .card small{color:var(--wui-muted)!important}body.wipy-ui .card a:not(.btn){color:var(--wui-link)}body.wipy-ui .form-control,body.wipy-ui .custom-select{height:var(--wipy-control-height,calc(1.5em + .75rem + 2px));border:1px solid var(--wui-field-border);border-radius:var(--wui-radius-control);background-color:var(--wui-surface);color:var(--wui-text);font-family:inherit}body.wipy-ui textarea.form-control{height:auto}body.wipy-ui .form-control:focus,body.wipy-ui .custom-select:focus{border-color:var(--wui-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--wui-accent) 45%,transparent)}body.wipy-ui .form-control.otp-digit{height:calc(var(--wipy-control-height,3rem) + .5rem);font-size:1.5rem}body.wipy-ui .form-check-input{accent-color:var(--wui-primary)}body.wipy-ui .btn{padding:var(--wipy-btn-padding,.375rem .75rem);border-radius:var(--wui-radius-control);font-family:inherit;font-weight:var(--wipy-btn-weight,400)}body.wipy-ui .btn-primary,body.wipy-ui .btn-primary:not(:disabled):not(.disabled):active{border-color:var(--wui-primary);background-color:var(--wui-primary);color:var(--wui-on-primary)}body.wipy-ui .btn-primary:hover{filter:brightness(1.15)}body.wipy-ui .btn:focus,body.wipy-ui .btn.focus,body.wipy-ui .btn-primary:focus{box-shadow:0 0 0 3px var(--wui-focus)}body.wipy-ui .btn-link{color:var(--wui-link);font-weight:var(--wipy-btn-weight,400)}body.wipy-ui .btn-outline-primary{border-color:var(--wui-primary);color:var(--wui-primary)}body.wipy-ui .btn-outline-primary:hover{background-color:var(--wui-primary);color:var(--wui-on-primary)}body.wipy-ui .alert{border-radius:var(--wui-radius-control)}