/* ========================================
   Ultimate Member — Complete Standalone
   Replaces all UM plugin CSS files
   ======================================== */

/* --- UM Base Layout (from um-styles) --- */
.um {
    position: relative;
}

.um * {
    box-sizing: border-box;
}

.um-clear {
    clear: both;
}

.um-row {
    margin-bottom: 16px;
}

.um-col-1 {
    width: 100%;
}

.um-left {
    float: left;
}

.um-right {
    float: right;
}

.um-half {
    width: 50%;
}

.um-third {
    width: 33.33%;
}

.um-field {
    position: relative;
    margin-bottom: 0;
}

.um-field-area {
    position: relative;
}

.um .um-field-label {
    display: block;
    margin-bottom: 4px;
}

.um_request_name {
    display: none !important;
}

/* UM responsive layout */
.um-responsive .um-row {
    display: block;
}

.um .um-form::after {
    content: "";
    display: table;
    clear: both;
}

/* UM icons (fonticons fallback) */
.um i[class^="um-icon-"],
.um i[class*=" um-icon-"] {
    font-style: normal;
    display: inline-block;
}

/* UM account layout */
.um-account-side {
    float: left;
    width: 30%;
}

.um-account-main {
    float: left;
}

.um-account-meta {
    overflow: hidden;
}

.um-account-meta-img {
    float: left;
    margin-right: 0;
}

.um-account-meta-img img,
.um-account-meta-img-b img {
    border-radius: 50%;
}

.um-accoun .um-account-name {
    padding-top: 4px;
    display: block !important;
}

.um-account-nav {
    margin-bottom: 16px;
}

/* Hide elements marked hidden by UM */
.um [style*="display: none"],
.um [style*="display:none"] {
    display: none !important;
}

/* --- UM Responsive visibility classes (from um-responsive.css) --- */
.uimob800-hide {
    display: block;
}

.uimob800-show {
    display: none !important;
}

.uimob340-show {
    display: none !important;
}

.uimob500-show {
    display: none !important;
}

@media (max-width: 800px) {

    .uimob800-hide,
    .tipsy {
        display: none !important;
    }

    .uimob800-show {
        display: block !important;
    }
}

@media (max-width: 500px) {
    .uimob500-show {
        display: none !important;
    }
}

@media (max-width: 340px) {
    .uimob340-show {
        display: block !important;
    }
}

/* --- UM Account tab display logic --- */
/* Hide non-current tabs, show only the active one */
.um-account-tab {
    display: none;
}

.um-account-main[data-current_tab="general"] .um-account-tab-general,
.um-account-main[data-current_tab="password"] .um-account-tab-password,
.um-account-main[data-current_tab="delete"] .um-account-tab-delete,
.um-account-main[data-current_tab="notifications"] .um-account-tab-notifications,
.um-account-main[data-current_tab="privacy"] .um-account-tab-privacy {
    display: block;
}

/* Also hide mobile nav for non-current tabs */
.um-account-nav {
    display: none;
}

.um-account-tab.um-account-tab-general+.um-account-nav,
.um-account-main[data-current_tab="general"] .um-account-tab-general~.um-account-nav {
    display: none;
}

/* Show nav only for current tab on mobile */
@media (max-width: 800px) {
    .um-account-nav {
        display: block;
    }
}

/* --- Base form wrapper --- */
.um .um-form {
    background: rgba(30, 30, 30, 0.9) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    padding: 32px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}

/* --- All text inputs --- */
.um .um-form input[type=text].um-form-field,
.um .um-form input[type=password].um-form-field,
.um .um-form input[type=email].um-form-field,
.um .um-form input[type=url].um-form-field,
.um .um-form input[type=tel].um-form-field,
.um .um-form input[type=number].um-form-field,
.um .um-form textarea.um-form-field,
.um .um-form select.um-form-field,
.um .um-form select {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #fff !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, 0.07) !important;
    padding: 14px 20px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    width: 100% !important;
    transition: all 0.2s ease !important;
    outline: none !important;
    box-shadow: none !important;
}

.um .um-form input[type=text].um-form-field::placeholder,
.um .um-form input[type=password].um-form-field::placeholder,
.um .um-form input[type=email].um-form-field::placeholder {
    color: rgba(255, 255, 255, 0.35) !important;
}

.um .um-form input[type=text].um-form-field:focus,
.um .um-form input[type=password].um-form-field:focus,
.um .um-form input[type=email].um-form-field:focus,
.um .um-form input[type=url].um-form-field:focus,
.um .um-form input[type=tel].um-form-field:focus,
.um .um-form input[type=number].um-form-field:focus,
.um .um-form textarea.um-form-field:focus,
.um .um-form select.um-form-field:focus,
.um .um-form select:focus {
    border-color: var(--yellow) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 0 0 3px rgba(255, 191, 0, 0.15) !important;
}

.um .um-form input.um-form-field.um-error {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15) !important;
}

/* --- Buttons --- */
.um .um-form input[type=submit].um-button,
.um .um-form .um-button:not(.um-alt) {
    background: var(--yellow) !important;
    color: #000 !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: 10px !important;
    border: none !important;
    padding: 14px 32px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.um .um-form input[type=submit].um-button:hover,
.um .um-form .um-button:not(.um-alt):hover {
    background: #e6ac00 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 16px rgba(255, 191, 0, 0.3) !important;
}

.um .um-form .um-button.um-alt {
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    background: transparent !important;
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    border-radius: 10px !important;
    padding: 14px 32px !important;
    transition: all 0.2s ease !important;
}

.um .um-form .um-button.um-alt:hover {
    border-color: var(--yellow) !important;
    color: var(--yellow) !important;
    background: rgba(255, 191, 0, 0.05) !important;
}

/* --- Row headings (Přihlášení, Registrace...) --- */
.um .um-form div.um-row-heading {
    color: var(--yellow) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin-bottom: 28px !important;
    padding-bottom: 0 !important;
    border: none !important;
}

/* --- Labels --- */
.um .um-form label.um-field-label,
.um .um-field-label {
    color: rgba(255, 255, 255, 0.5) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 6px !important;
}

/* --- All text white --- */
.um .um-form .um-field-area,
.um .um-form p,
.um .um-form span,
.um .um-form label,
.um .um-form .um-field-value,
.um .um-form div {
    color: #fff;
}

/* --- Links --- */
.um .um-form a.um-link-alt,
.um .um-col-alt-b a,
.um .um-col-alt a {
    color: var(--yellow) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    transition: color 0.2s !important;
}

.um .um-form a.um-link-alt:hover,
.um .um-col-alt-b a:hover,
.um .um-col-alt a:hover {
    color: #fff !important;
}

.um .um-col-alt {
    text-align: center !important;
    margin-top: 8px !important;
}

.um .um-col-alt p {
    color: rgba(255, 255, 255, 0.4) !important;
}

.um .um-col-alt-b {
    text-align: center !important;
    margin-top: 16px !important;
}

/* --- Checkbox / radio --- */
.um .um-field-checkbox label,
.um .um-field-radio label,
.um .um-field-checkbox-option {
    color: rgba(255, 255, 255, 0.6) !important;
    text-align: left !important;
}

.um-field-checkbox:not(.um-field) {
    margin-bottom: 30px !important;
}

.um .um-field-checkbox.active:not(.um-field-radio-state-disabled) i {
    color: var(--yellow) !important;
}

/* --- Password toggle icon --- */
.um .um-toggle-password i {
    color: rgba(255, 255, 255, 0.4) !important;
}

.um .um-toggle-password:hover i {
    color: var(--yellow) !important;
}

/* --- Hide privacy tab --- */
.um-account-side li a[data-tab="privacy"],
.um-account-nav a[data-tab="privacy"] {
    display: none !important;
}

/* --- Register post message — po registraci (success state) --- */
.um.um-register .um-postmessage {
    position: relative;
    background: rgba(34, 197, 94, 0.07) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    border-radius: 14px !important;
    border: 1px solid rgba(34, 197, 94, 0.24) !important;
    padding: 26px 28px 26px 68px !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(34, 197, 94, 0.08);
}

/* Zelený check badge vlevo nahoře — vizuální potvrzení úspěšné akce */
.um.um-register .um-postmessage::before {
    content: "";
    position: absolute;
    left: 22px;
    top: 26px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: rgba(34, 197, 94, 0.18);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234ade80' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    border: 1px solid rgba(34, 197, 94, 0.3);
}

/* Případné odkazy / zvýraznění uvnitř hlášky */
.um.um-register .um-postmessage strong,
.um.um-register .um-postmessage b {
    color: #4ade80;
    font-weight: 600;
}
.um.um-register .um-postmessage a {
    color: #ffcc00;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 204, 0, 0.4);
}
.um.um-register .um-postmessage a:hover {
    border-bottom-color: #ffcc00;
}

@media (max-width: 480px) {
    .um.um-register .um-postmessage {
        padding: 22px 20px 22px 60px !important;
        font-size: 14px !important;
    }
    .um.um-register .um-postmessage::before {
        left: 18px;
        top: 22px;
        width: 28px;
        height: 28px;
        background-size: 14px 14px;
    }
}

.um.um-register .um-form .um-field-type_password .um-field-label {
    display: none !important;
}

/* --- UM Inline style overrides --- */
.um .um-form .um-row[style],
.um .um-form .um-row-heading[style] {
    border: none !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
}

/* Login/Register — full-width stacked buttons */
.um .um-col-alt .um-left.um-half,
.um .um-col-alt .um-right.um-half {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin-bottom: 10px !important;
}

.um .um-col-alt .um-left.um-half .um-button,
.um .um-col-alt .um-right.um-half .um-button,
.um .um-col-alt .um-left.um-half input.um-button,
.um .um-col-alt .um-right.um-half a.um-button {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* "Zapomněli jste heslo?" */
.um .um-col-alt-b {
    padding-top: 16px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
    margin-top: 20px !important;
}

/* Password eye icon */
.um .um-field-area-password {
    position: relative !important;
}

.um .um-toggle-password {
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}

/* UM field spacing */
.um .um-form .um-field {
    margin-bottom: 16px !important;
}

/* Honeypot hidden */
.um .um_request_name {
    display: none !important;
}

/* Vynucené horizontální + vertikální centrování UM karet — wpautop/page-builder
   může vložit asymetrické wrappery, `margin: auto` na samotné kartě selže.
   Flex centruje spolehlivě bez ohledu na vnitřní strukturu the_content().
   Snížený top padding (default main = 200px) — karta je sama dost odsazena. */
body.um-page-login main,
body.um-page-register main,
body.um-page-password-reset main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 140px !important;
    padding-bottom: 60px !important;
    min-height: 100vh;
}
body.um-page-login main > *,
body.um-page-register main > *,
body.um-page-password-reset main > * {
    width: 100%;
    max-width: 460px;
}
/* Karta uvnitř UM stránek — zrušíme `margin: 80px auto`, centrování řeší rodič */
body.um-page-login .um.um-login,
body.um-page-register .um.um-register,
body.um-page-password-reset .um.um-password {
    margin: 0 auto !important;
}

/* --- Login / Register / Password — styled like upload form --- */
.um.um-login,
.um.um-register,
.um.um-password {
    --start: 0;
    max-width: 460px !important;
    margin: 80px auto !important;
    position: relative;
    border-radius: 20px;
    border: 1px solid rgba(255, 204, 0, 0.12);
    padding: 40px 36px !important;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 204, 0, 0.06);
    transition: box-shadow 0.4s ease, border-color 0.3s ease;
}

/* --- Password reset description text --- */
.um.um-password .um-field-block div[style*="text-align"] {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    margin-bottom: 24px !important;
}

/* --- Password reset error notice (inline UM errors) --- */
.um.um-password .um-form .um-notice,
.um.um-password .um-form .um-notice.err,
.um.um-password .um-form .um-field-error-message,
.um.um-password .um-form p.um-notice-txt {
    background: rgba(239, 68, 68, 0.08) !important;
    color: #f87171 !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    border-radius: 12px !important;
    padding: 14px 18px !important;
    font-size: 14px !important;
    margin-bottom: 16px !important;
}

/* --- Password reset success notice --- */
.um.um-password .um-form .um-notice.success,
.um.um-password .um-form .um-notice:not(.err) {
    background: rgba(34, 197, 94, 0.08) !important;
    color: #4ade80 !important;
    border: 1px solid rgba(34, 197, 94, 0.2) !important;
    border-radius: 12px !important;
    padding: 14px 18px !important;
    font-size: 14px !important;
    margin-bottom: 16px !important;
}

.um.um-login:hover,
.um.um-register:hover,
.um.um-password:hover {
    border-color: rgba(255, 204, 0, 0.25);
}

/* Animated conic gradient border — same as upload form */
.um.um-login::before,
.um.um-register::before,
.um.um-password::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 20px;
    border: 2px solid transparent;
    background: var(--gradient);
    background-attachment: fixed;
    mask: linear-gradient(#0000, #0000),
        conic-gradient(from calc((var(--start) - (20 * 1.1)) * 1deg),
            #ffffff1f 0deg,
            white,
            #ffffff00 100deg);
    mask-composite: intersect;
    mask-clip: padding-box, border-box;
    opacity: 0;
    transition: 0.5s ease;
    pointer-events: none;
}

.um.um-login:hover::before,
.um.um-register:hover::before,
.um.um-password:hover::before {
    opacity: 0.6;
}

/* Inner form transparent — outer wrapper has the style */
.um.um-login .um-form,
.um.um-register .um-form,
.um.um-password .um-form {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    backdrop-filter: none !important;
}

/* ========================================
   UM Account Page (Profil)
   ======================================== */
.um.um-account {
    margin: 40px auto !important;
}

.um.um-account .um-form {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

/* --- Sidebar --- */
.um-account-side {
    background: rgba(30, 30, 30, 0.9) !important;
    backdrop-filter: blur(20px) !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 12px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}

.um-account-meta {
    display: flex;
    flex-direction: column;
    background: transparent !important;
    padding: 12px 8px 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    margin-bottom: 8px !important;
}

.um-account-meta .um-account-name a,
.um-account-meta .um-account-name span {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.um-account-meta .um-account-name a:hover {
    color: var(--yellow) !important;
}

.um-account-side ul {
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.um-account-side ul li {
    background: transparent !important;
    margin-bottom: 5px !important;
}

.um-account-side ul li a {
    padding: 10px 14px !important;
    border-radius: 10px !important;
    transition: all 0.15s ease !important;
    display: flex !important;
    align-items: center !important;
}

.um-account-side ul li a:hover,
.um-account-side ul li a:focus {
    background: rgba(255, 255, 255, 0.06) !important;
}

.um-account-side ul li a span.um-account-icon {
    color: rgba(255, 255, 255, 0.4) !important;
    margin-right: 4px !important;
}

.um-account-side ul li a span.um-account-title {
    display: block !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 14px !important;
}

.um-account-side ul li a span.um-account-arrow {
    display: none !important;
}

/* Active tab */
.um-account-side li a.current {
    background: rgba(255, 191, 0, 0.1) !important;
}

.um-account-side li a.current span.um-account-icon {
    color: var(--yellow) !important;
}

.um-account-side li a.current span.um-account-title {
    color: var(--yellow) !important;
    font-weight: 600 !important;
}

/* Mobile active */
div.uimob800 .um-account-side li a.current {
    background: rgba(255, 191, 0, 0.15) !important;
}

/* --- Main content area --- */
.um-account-main {
    background: rgba(30, 30, 30, 0.9) !important;
    backdrop-filter: blur(20px) !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 28px 32px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
    width: 65% !important;
    margin-left: 5% !important;
}

.um-account-main div.um-account-heading {
    color: var(--yellow) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding-bottom: 14px !important;
    margin-bottom: 24px !important;
}

.um-account-main .um-account-heading a {
    color: var(--yellow) !important;
    font-size: 13px !important;
    opacity: 0.7 !important;
}

.um-account-main .um-account-heading a:hover {
    opacity: 1 !important;
}

/* --- Mobile tabs --- */
.um-account-nav a {
    color: rgba(255, 255, 255, 0.8) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 10px !important;
    margin-bottom: 4px !important;
    padding: 12px 16px !important;
}

.um-account-nav a.current {
    color: var(--yellow) !important;
    background: rgba(255, 191, 0, 0.08) !important;
    border-color: rgba(255, 191, 0, 0.2) !important;
}

.um-account-nav a .ico i,
.um-account-nav a .arr i {
    color: rgba(255, 255, 255, 0.4) !important;
}

/* --- Delete account tab --- */
.um-account-tab-delete p {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* --- Password strength --- */
.um .um-form .um-field-type_password .um-field-area .um-misc-password-info {
    color: rgba(255, 255, 255, 0.4) !important;
}

/* --- Notifications --- */
.um .um-form .um-field-notice,
.um .um-notice {
    background: rgba(255, 191, 0, 0.08) !important;
    color: var(--yellow) !important;
    border: 1px solid rgba(255, 191, 0, 0.15) !important;
    border-radius: 10px !important;
    padding: 14px 18px !important;
}

.um .um-form .um-field-success {
    background: rgba(34, 197, 94, 0.08) !important;
    color: #22c55e !important;
    border: 1px solid rgba(34, 197, 94, 0.15) !important;
    border-radius: 10px !important;
}

/* Error notice blocks — override all UM error styles */
.um .um-form .um-notice.err,
.um .um-form .um-error-block,
.um .um-notice.err,
.um .um-form .um-notice-txt,
.um .um-field .um-field-error-message {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    border-radius: 10px !important;
    padding: 14px 18px !important;
}

/* UM any page — error notices */
.um .um-form .um-notice,
.um-password .um-form .um-notice,
.um-login .um-form .um-notice,
.um-register .um-form .um-notice {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    border-radius: 10px !important;
    padding: 14px 18px !important;
}

.um .um-form .um-field-error,
.um .um-form .um-field-error-message,
.um .um-form div[id^="um-error-for-"] {
    background: rgba(239, 68, 68, 0.08) !important;
    color: #f87171 !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    font-size: 13px !important;
    margin-top: 8px !important;
}

.um .um-form div[id^="um-error-for-"] span,
.um .um-form div[id^="um-error-for-"] i {
    color: #f87171 !important;
}

/* Hide the caret arrow inside error - looks broken on dark bg */
.um .um-form div[id^="um-error-for-"] .um-field-arrow,
.um .um-form div[id^="um-error-for-"] i.um-faicon-caret-up {
    display: none !important;
}

/* Also style the input border red on error */
.um .um-form input.um-error,
.um .um-form input[aria-invalid="true"] {
    border-color: rgba(239, 68, 68, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .um.um-account {
        padding: 0 16px !important;
        max-width: 100% !important;
    }

    .um.um-account .um-account-side,
    .um-account-side {
        width: 100% !important;
        float: none !important;
        margin-bottom: 16px !important;
        box-sizing: border-box !important;
    }

    .um.um-account .um-account-main,
    .um-account-main {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        padding: 20px !important;
        box-sizing: border-box !important;
    }

    /* UM uses inline widths on these — force override */
    .um.um-account .um-account-side[style],
    .um.um-account .um-account-main[style] {
        width: 100% !important;
        float: none !important;
    }
}

@media (max-width: 500px) {

    .um.um-login,
    .um.um-register,
    .um.um-password {
        margin: 30px 16px !important;
        padding: 24px 20px !important;
    }
}