/* Sdílený základ veřejných formulářů pro desktop i mobil. */
.pb-form {
    --pb-form-control-height: 43px;
    --pb-form-control-radius: 8px;
    --pb-form-control-padding-x: 10px;
    --pb-form-control-font-size: 15px;
    --pb-form-action-height: 42px;
    --pb-form-panel-padding: 20px;
    --pb-form-panel-border: 1px solid var(--pb-border);
    --pb-form-panel-radius: 13px;
    --pb-form-panel-background: var(--pb-canvas);
    --pb-form-panel-shadow: 0 4px 15px var(--pb-shadow);
    --pb-form-textarea-min-height: 180px;
    box-sizing: border-box;
}

.pb-form-panel {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: var(--pb-form-panel-padding);
    border: var(--pb-form-panel-border);
    border-radius: var(--pb-form-panel-radius);
    background: var(--pb-form-panel-background);
    box-shadow: var(--pb-form-panel-shadow);
}

.pb-form-panel > legend {
    max-width: calc(100% - 28px);
    padding: 7px 12px;
    border-radius: var(--pb-form-control-radius);
    background: var(--pb-primary);
    color: var(--pb-canvas);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
}

.pb-form p {
    margin: 0 0 14px;
}

.pb-form label {
    display: block;
    margin: 0 0 5px;
    color: var(--pb-muted);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.35;
    text-align: left;
}

.pb-form input[type="text"],
.pb-form input[type="tel"],
.pb-form input[type="email"],
.pb-form input[type="password"],
.pb-form input[type="number"],
.pb-form input[type="url"],
.pb-form select,
.pb-form textarea {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-height: var(--pb-form-control-height);
    margin: 0;
    padding: 8px var(--pb-form-control-padding-x);
    border: 1px solid var(--pb-border);
    border-radius: var(--pb-form-control-radius);
    background: var(--pb-canvas);
    color: var(--pb-text);
    font-family: inherit;
    font-size: var(--pb-form-control-font-size);
}

.pb-form input[type="text"],
.pb-form input[type="tel"],
.pb-form input[type="email"],
.pb-form input[type="password"],
.pb-form input[type="number"],
.pb-form input[type="url"],
.pb-form select {
    height: var(--pb-form-control-height);
}

.pb-form textarea {
    min-height: var(--pb-form-textarea-min-height);
    line-height: 1.5;
    resize: vertical;
}

.pb-form input:focus,
.pb-form select:focus,
.pb-form textarea:focus {
    border-color: var(--pb-primary);
    box-shadow: 0 0 0 3px var(--pb-focus);
    outline: none;
}

.pb-form input:disabled,
.pb-form select:disabled,
.pb-form textarea:disabled {
    background: var(--pb-border);
    color: var(--pb-muted);
    cursor: not-allowed;
}

.pb-form-primary-action {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: var(--pb-form-action-height);
    margin: 2px 0 0;
    padding: 8px 16px;
    border: 1px solid var(--pb-primary-hover);
    border-radius: var(--pb-form-control-radius);
    background: var(--pb-primary);
    color: var(--pb-canvas);
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
    text-align: center;
}

.pb-form-primary-action:hover,
.pb-form-primary-action:focus-visible {
    border-color: var(--pb-primary-hover);
    background: var(--pb-primary-hover);
    color: var(--pb-canvas);
    outline: none;
}

.pb-form-primary-action:disabled {
    cursor: not-allowed;
    opacity: .62;
}

/* Sdílené, explicitně pojmenované části veřejných formulářů. */
.phone-control {
    display: flex;
    width: 100%;
    align-items: stretch;
}

.phone-prefix {
    display: inline-flex;
    min-height: var(--pb-form-control-height, 43px);
    padding: 0 12px;
    border: 1px solid var(--pb-border);
    border-right: 0;
    border-radius: var(--pb-form-control-radius, 8px) 0 0 var(--pb-form-control-radius, 8px);
    background: var(--pb-border);
    color: var(--pb-muted);
    align-items: center;
    justify-content: center;
    font-weight: 750;
    white-space: nowrap;
}

.phone-control > input[type="tel"],
.phone-control > input[type="text"] {
    min-width: 0;
    margin: 0;
    border-radius: 0 var(--pb-form-control-radius, 8px) var(--pb-form-control-radius, 8px) 0;
}

/* Jednotný ovladač pro zobrazení hesla; tlačítko zůstává viditelné i u prázdného pole. */
.password-control {
    position: relative;
    display: block;
    width: 100%;
}

.password-control > input[type="password"],
.password-control > input[type="text"] {
    margin: 0;
    padding-right: 48px;
}

/* Edge doplňuje vlastní očko až po napsání hesla. Používáme jednotné
   tlačítko stránky, proto nativní duplicitní ovladač skryjeme. */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}

.password-control > .password-toggle {
    position: absolute;
    top: 4px;
    right: 4px;
    display: inline-flex;
    box-sizing: border-box;
    width: 35px;
    height: 35px;
    min-height: 35px;
    margin: 0;
    padding: 0;
    border: 2px solid var(--pb-primary);
    border-radius: 6px;
    background: var(--pb-surface);
    color: var(--pb-text);
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.password-control > .password-toggle:hover,
.password-control > .password-toggle:focus-visible {
    background: var(--pb-primary-soft);
    color: var(--pb-text);
    outline: none;
    box-shadow: 0 0 0 2px var(--pb-focus);
}

.password-control > .password-toggle[aria-pressed="true"] {
    background: var(--pb-primary-soft);
}

.password-control > .password-toggle svg {
    display: block;
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.pb-form .password-control {
    margin: 0;
}

.password-control > .password-toggle .password-eye-closed,
.password-control > .password-toggle[aria-pressed="true"] .password-eye-open {
    display: none;
}

.password-control > .password-toggle[aria-pressed="true"] .password-eye-closed {
    display: block;
}

.antispam-challenge {
    box-sizing: border-box;
    width: 100%;
    margin: 4px 0 15px;
    padding: 13px 14px;
    border: 1px solid var(--pb-primary);
    border-radius: 9px;
    background: var(--pb-surface);
    text-align: left;
}

.antispam-challenge-title {
    display: block;
    margin-bottom: 8px;
    color: var(--pb-danger);
    font-size: 14px;
}

.antispam-challenge label {
    display: block;
    margin: 0 0 3px;
    color: var(--pb-muted);
    font-weight: 750;
}

.antispam-challenge-help {
    display: block;
    margin: 0 0 8px;
    color: var(--pb-muted);
    font-size: 12px;
}

.antispam-challenge input[type="text"] {
    width: 100%;
    max-width: none;
    margin: 0;
    text-align: left;
}

/* Dočasná kompatibilita tlačítek, která postupně dostanou významové třídy. */
.tlacitkozlute {
    display: inline-block;
    width: auto;
    min-height: 38px;
    margin: 5px;
    padding: 7px 11px;
    border: 1px solid var(--pb-primary-hover);
    border-radius: 7px;
    background: var(--pb-primary);
    color: var(--pb-canvas);
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.tlacitkozlute:hover,
.tlacitkozlute:focus-visible {
    background: var(--pb-primary-hover);
    color: var(--pb-canvas);
    outline: none;
}
