/* ==========================================================================
   MakerFaire Plugin Styles
   BEM Methodology: Block__Element--Modifier
   Prefix: mf-
   
   Uses CSS variables from makerfaire.cz theme:
   --primary, --secondary, --tertiary, --accent, --base, --neutral, --white
   + variants: --*-dark, --*-light, --*-ultra-light, --*-semi-light, etc.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Plugin-specific CSS Variables (only what's not in theme)
   -------------------------------------------------------------------------- */
:root {
    /* Success (green - not in theme) */
    --mf-color-success: #2E7D32;
    --mf-color-success-dark: #1B5E20;
    --mf-color-bg-success: #F0FDF4;
    --mf-color-success-light: #4caf50;

    /* Warning/Share (orange - not in theme) */
    --mf-color-warning: #F97316;
    --mf-color-warning-dark: #EA580C;
    --mf-color-bg-warning: #FFF7ED;
    --mf-color-bg-error: #ffebee;
    --mf-color-warning-light: #ffc107;

    /* Colors - Danger */
    --mf-color-danger: #e91e63;
    --mf-color-danger-dark: #c2185b;
    --mf-color-danger-light: #f44336;


    /* Spacing */
    --mf-spacing-xs: 5px;
    --mf-spacing-sm: 10px;
    --mf-spacing-md: 15px;
    --mf-spacing-lg: 20px;
    --mf-spacing-xl: 30px;
    --mf-spacing-xxl: 40px;

    /* Border radius */
    --mf-radius-sm: 4px;
    --mf-radius-md: 8px;
    --mf-radius-lg: 12px;
    --mf-radius-pill: 9999px;

    /* Shadows */
    --mf-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --mf-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --mf-shadow-focus: 0 0 0 3px var(--primary-trans-30, rgba(106, 220, 255, 0.3));
}

/* --------------------------------------------------------------------------
   Components: Buttons (makerfaire.cz style - rectangular, uppercase)
   -------------------------------------------------------------------------- */
.mf-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 20px;
    background: var(--accent);
    color: var(--base);
    text-decoration: none;
    border-radius: 0;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s;
}

.mf-button:hover {
    background: var(--accent-dark);
    color: var(--base);
}

/* Primary = Green (main actions like "Nový projekt") */
.mf-button--primary {
    background: var(--mf-color-success) !important;
    color: #ffffff !important;
}

.mf-button--primary:hover {
    background: var(--mf-color-success-dark) !important;
    color: #ffffff !important;
}

/* Secondary = Purple (for "Přihlásit projekt") */
.mf-button--secondary {
    background: var(--tertiary) !important;
    color: #ffffff !important;
}

.mf-button--secondary:hover {
    background: var(--tertiary-dark) !important;
    color: #ffffff !important;
}

/* Outline = transparent with purple border */
.mf-button--outline {
    background: transparent !important;
    border: 2px solid var(--tertiary) !important;
    color: var(--tertiary) !important;
}

.mf-button--outline:hover {
    background: var(--tertiary) !important;
    color: #ffffff !important;
}

.mf-button--copied {
    background: var(--mf-color-success) !important;
    border-color: var(--mf-color-success) !important;
    color: #ffffff !important;
}

/* Share = Orange */
.mf-button--share {
    background: var(--mf-color-warning) !important;
    color: #ffffff !important;
}

.mf-button--share:hover {
    background: var(--mf-color-warning-dark) !important;
    color: #ffffff !important;
}

/* Cancel = white with red border */
.mf-button--cancel {
    padding: 10px 20px;
    background: var(--white);
    border: 2px solid var(--secondary);
    color: var(--secondary);
    border-radius: 0;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.2s;
}

.mf-button--cancel:hover {
    background: var(--secondary);
    color: var(--white);
}

.mf-button--cancel:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.mf-button--large {
    padding: 14px 28px;
    font-size: 16px;
}

.mf-button--block {
    display: flex;
    width: 100%;
    text-align: center;
}

/* --------------------------------------------------------------------------
   Components: Forms
   -------------------------------------------------------------------------- */
.mf-form__group {
    margin-bottom: var(--mf-spacing-lg);
}

.mf-form__group label {
    display: block;
    margin-bottom: var(--mf-spacing-xs);
    font-weight: 600;
}

.mf-form__group input {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--base-light);
    border-radius: 0;
    font-size: 16px;
    box-sizing: border-box;
}

.mf-form__group input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: var(--mf-shadow-focus);
}

.mf-form__input--disabled {
    background: var(--neutral);
    color: var(--base-semi-dark);
    cursor: not-allowed;
}

.mf-form__help {
    display: block;
    margin-top: var(--mf-spacing-xs);
    color: var(--base-semi-dark);
    font-size: 13px;
}

.mf-form__actions {
    margin-top: var(--mf-spacing-xl);
}

.mf-form__intro {
    color: var(--base-semi-dark);
    margin-bottom: var(--mf-spacing-lg);
}

.mf-form__note {
    margin-top: var(--mf-spacing-lg);
    padding: var(--mf-spacing-md);
    background: var(--mf-color-bg-warning);
    border-left: 4px solid var(--mf-color-warning);
    border-radius: var(--mf-radius-sm);
}

.mf-form__note p {
    margin: 0;
}

/* --------------------------------------------------------------------------
   Components: Messages
   -------------------------------------------------------------------------- */
.mf-message {
    padding: var(--mf-spacing-md);
    border-radius: var(--mf-radius-sm);
    margin-bottom: var(--mf-spacing-lg);
}

.mf-message--info {
    background: var(--primary-ultra-light);
    border: 1px solid var(--primary);
}

.mf-message--warning {
    background: var(--mf-color-bg-warning);
    border: 1px solid var(--mf-color-warning);
}

.mf-message--error {
    background: var(--secondary-ultra-light);
    border: 1px solid var(--secondary-light);
    color: #c62828;
}

.mf-message--success {
    background: var(--mf-color-bg-success);
    border: 1px solid var(--mf-color-success);
}

.mf-message__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mf-spacing-sm);
    margin-top: var(--mf-spacing-md);
    justify-content: center;
}

/* --------------------------------------------------------------------------
   Components: Status Badge
   -------------------------------------------------------------------------- */
.mf-status {
    display: inline-block;
    padding: 4px 12px;
    border-radius: var(--mf-radius-pill);
    color: var(--white);
    font-size: 0.85em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.mf-status--small {
    padding: 3px 10px;
    font-size: 12px;
}

/* Status colors */
.mf-status--success,
.mf-status--approved {
    background: var(--mf-color-success);
}

.mf-status--pending {
    background: var(--mf-color-warning);
}

.mf-status--rejected {
    background: var(--secondary);
}

.mf-status--draft {
    background: var(--base-semi-light);
}

/* --------------------------------------------------------------------------
   Components: Tags (like on makerfaire.cz - rectangular with red border)
   -------------------------------------------------------------------------- */
.mf-tag {
    display: inline-block;
    padding: 4px 12px;
    background: transparent;
    border: 2px solid var(--secondary);
    color: var(--secondary);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 0;
    text-decoration: none;
    transition: all 0.15s ease;
}

.mf-tag:hover {
    background: var(--secondary);
    color: var(--white);
}

.mf-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mf-spacing-xs);
}

/* --------------------------------------------------------------------------
   Components: Modal
   -------------------------------------------------------------------------- */
.mf-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    /* Override WordPress layout constraints */
    max-width: none !important;
    margin: 0 !important;
    width: 100% !important;
}

.mf-modal--active {
    display: flex !important;
}

.mf-modal__dialog {
    background: var(--white);
    padding: 25px;
    border-radius: var(--mf-radius-md);
    max-width: 500px !important;
    width: 90%;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    /* Override WordPress layout constraints */
    margin: 0 !important;
}

.mf-modal__dialog h3 {
    margin: 0 0 var(--mf-spacing-md);
}

.mf-modal__url {
    display: flex;
    gap: var(--mf-spacing-sm);
    margin-bottom: var(--mf-spacing-md);
}

.mf-modal__url input {
    flex: 1;
    padding: var(--mf-spacing-sm);
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    font-size: 14px;
}

.mf-modal__url button {
    padding: 10px 20px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: var(--mf-radius-sm);
    cursor: pointer;
}

.mf-modal__url button:hover {
    background: var(--primary-dark);
}

.mf-modal__url button.mf-modal__url-copied {
    background: var(--mf-color-success);
}

.mf-modal__info {
    font-size: 13px;
    color: var(--base-semi-dark);
    margin-bottom: var(--mf-spacing-md);
}

.mf-modal__close {
    display: block;
    width: 100%;
    padding: var(--mf-spacing-sm);
    background: var(--neutral);
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    cursor: pointer;
    text-align: center;
}

.mf-modal__close:hover {
    background: var(--neutral-light);
}


/* --------------------------------------------------------------------------
   Components: Info Box
   -------------------------------------------------------------------------- */
.mf-info-box {
    background: var(--mf-color-bg-info);
    border: 1px solid var(--mf-color-info);
    border-radius: var(--mf-radius-md);
    padding: var(--mf-spacing-lg);
    margin-top: var(--mf-spacing-xl);
}

.mf-info-box h3 {
    margin: 0 0 var(--mf-spacing-md) 0;
    color: var(--mf-color-info-dark);
    font-size: 1.1em;
}

.mf-info-box ul {
    margin: 0;
    padding-left: var(--mf-spacing-lg);
}

.mf-info-box li {
    margin-bottom: var(--mf-spacing-sm);
    line-height: 1.5;
    color: var(--mf-color-text);
}

.mf-info-box li:last-child {
    margin-bottom: 0;
}

.mf-info-box strong {
    color: var(--mf-color-info-dark);
}



/* --------------------------------------------------------------------------
   Components: Text helpers
   -------------------------------------------------------------------------- */
.mf-text--success {
    color: var(--mf-color-success);
}

.mf-text--info {
    color: var(--primary-dark);
}

.mf-text--warning {
    color: var(--secondary);
}

.mf-text--muted {
    color: var(--base-semi-light);
}

/* --------------------------------------------------------------------------
   Sections: Projects
   -------------------------------------------------------------------------- */
.mf-projects {
    max-width: 800px;
    margin: 0 auto;
}

.mf-projects__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--mf-spacing-lg);
}

.mf-projects__list {
    display: flex;
    flex-direction: column;
    gap: var(--mf-spacing-lg);
}

.mf-projects__empty {
    padding: var(--mf-spacing-xxl);
    text-align: center;
    background: var(--neutral);
    border-radius: var(--mf-radius-md);
}

/* --------------------------------------------------------------------------
   Sections: Project Card
   -------------------------------------------------------------------------- */
.mf-project {
    display: flex;
    gap: var(--mf-spacing-lg);
    padding: var(--mf-spacing-lg);
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-md);
    background: var(--white);
}

.mf-project__thumbnail {
    flex: 0 0 150px;
}

.mf-project__thumbnail img {
    width: 100%;
    height: auto;
    border-radius: var(--mf-radius-sm);
}

.mf-project__content {
    flex: 1;
}

.mf-project__content h3 {
    margin: 0 0 var(--mf-spacing-sm);
}

.mf-project__excerpt {
    color: var(--base-semi-dark);
    margin: 0 0 var(--mf-spacing-sm);
}

.mf-project__meta {
    font-size: 0.9em;
    color: var(--base-semi-light);
    margin-bottom: var(--mf-spacing-md);
}

.mf-project__actions {
    display: flex;
    gap: var(--mf-spacing-sm);
    flex-wrap: wrap;
}

.mf-project__applications {
    margin: var(--mf-spacing-md) 0;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 3px solid var(--primary);
}

.mf-project__applications h4 {
    margin: 0 0 var(--mf-spacing-sm);
    font-size: 14px;
    color: var(--base);
}

/* --------------------------------------------------------------------------
   Sections: Applications (in project)
   -------------------------------------------------------------------------- */
.mf-applications__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mf-applications__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid #e0e0e0;
}

.mf-applications__item:last-child {
    border-bottom: none;
}

.mf-applications__event {
    font-size: 14px;
    color: var(--base);
}

/* --------------------------------------------------------------------------
   Sections: Applications Page
   -------------------------------------------------------------------------- */
.mf-applications {
    max-width: 800px;
    margin: 0 auto;
}

/* Links in applications should be underlined */
.mf-applications a:not(.mf-button):not(.mf-tag) {
    text-decoration: underline;
}

.mf-applications a:not(.mf-button):not(.mf-tag):hover {
    color: var(--tertiary);
}

.mf-applications-list {
    display: flex;
    flex-direction: column;
    gap: var(--mf-spacing-md);
}

.mf-applications__empty {
    padding: var(--mf-spacing-xxl);
    text-align: center;
    background: var(--neutral);
    border-radius: var(--mf-radius-md);
}

/* --------------------------------------------------------------------------
   Sections: Application Card
   -------------------------------------------------------------------------- */
.mf-application {
    padding: var(--mf-spacing-lg);
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-md);
    background: var(--white);
}

.mf-application__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--mf-spacing-md);
    flex-wrap: wrap;
    gap: var(--mf-spacing-sm);
}

.mf-application__header h3 {
    margin: 0;
    font-size: 1.2em;
}

.mf-application__details {
    color: var(--base-semi-dark);
}

.mf-application__details p {
    margin: var(--mf-spacing-xs) 0;
}

.mf-application__actions {
    margin-top: var(--mf-spacing-md);
    padding-top: var(--mf-spacing-md);
    border-top: 1px solid var(--neutral-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--mf-spacing-sm);
}

/* --------------------------------------------------------------------------
   Sections: Account Setup
   -------------------------------------------------------------------------- */
.mf-account {
    max-width: 500px;
    margin: 0 auto;
    padding: var(--mf-spacing-lg);
}

.mf-account__availability {
    margin-top: var(--mf-spacing-xs);
    font-size: 13px;
}

.mf-account__availability--available {
    color: var(--mf-color-success);
}

.mf-account__availability--taken {
    color: var(--secondary-light);
}

.mf-account__availability--checking {
    color: var(--mf-color-warning);
}

.mf-account__password-strength {
    margin-top: var(--mf-spacing-xs);
    font-size: 13px;
}

.mf-account__password-strength--weak {
    color: var(--secondary-light);
}

.mf-account__password-strength--medium {
    color: var(--mf-color-warning);
}

.mf-account__password-strength--strong {
    color: var(--mf-color-success);
}

.mf-account__password-match {
    margin-top: var(--mf-spacing-xs);
    font-size: 13px;
}

.mf-account__password-match--match {
    color: var(--mf-color-success);
}

.mf-account__password-match--no-match {
    color: var(--secondary-light);
}

.mf-account__info {
    text-align: center;
    padding: var(--mf-spacing-lg);
    background: var(--neutral);
    border-radius: var(--mf-radius-sm);
    margin-bottom: var(--mf-spacing-xl);
}

.mf-account__info p {
    margin: 0 0 var(--mf-spacing-md) 0;
    font-size: 1.2em;
}

.mf-account__actions {
    display: flex;
    gap: var(--mf-spacing-sm);
    justify-content: center;
}

/* --------------------------------------------------------------------------
   Sections: Apply to Event
   -------------------------------------------------------------------------- */
.mf-apply-event {
    max-width: 700px;
    margin: 0 auto;
}

.mf-apply-event__project {
    background: var(--primary-ultra-light);
    padding: var(--mf-spacing-md);
    border-radius: var(--mf-radius-sm);
    margin-bottom: var(--mf-spacing-lg);
}

/* --------------------------------------------------------------------------
   ACF Form Container
   Obecný wrapper pro ACF formuláře s jednotným vzhledem
   -------------------------------------------------------------------------- */
.mf-acf-form {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--mf-spacing-lg);
}

.mf-acf-form .acf-form {
    background: var(--white);
}

.mf-acf-form .acf-form h2 {
    margin-bottom: var(--mf-spacing-lg);
    padding-bottom: var(--mf-spacing-md);
    border-bottom: 1px solid var(--base-light);
}

/* ACF Field Groups */
.mf-acf-form .acf-fields {
    border: none !important;
    background: transparent !important;
}

.mf-acf-form .acf-field {
    padding: var(--mf-spacing-md) 0 !important;
    border: none !important;
    margin-bottom: var(--mf-spacing-sm);
}

/* ACF Labels */
.mf-acf-form .acf-label {
    margin-bottom: var(--mf-spacing-xs) !important;
}

.mf-acf-form .acf-label label {
    font-weight: 600;
    font-size: 14px;
    color: var(--base);
}

/* ACF Inputs */
.mf-acf-form .acf-input input[type="text"],
.mf-acf-form .acf-input input[type="url"],
.mf-acf-form .acf-input input[type="email"],
.mf-acf-form .acf-input input[type="password"],
.mf-acf-form .acf-input input[type="number"],
.mf-acf-form .acf-input input[type="tel"],
.mf-acf-form .acf-input textarea,
.mf-acf-form .acf-input select {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    font-size: 16px;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.mf-acf-form .acf-input input:focus,
.mf-acf-form .acf-input textarea:focus,
.mf-acf-form .acf-input select:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: var(--mf-shadow-focus);
}

/* ACF Textarea */
.mf-acf-form .acf-input textarea {
    min-height: 120px;
    resize: vertical;
}

/* ACF WYSIWYG */
.mf-acf-form .acf-editor-wrap {
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    overflow: hidden;
}

/* ACF Checkbox & Radio */
.mf-acf-form .acf-checkbox-list,
.mf-acf-form .acf-radio-list {
    padding: var(--mf-spacing-sm) 0;
}

.mf-acf-form .acf-checkbox-list li,
.mf-acf-form .acf-radio-list li {
    margin-bottom: var(--mf-spacing-xs);
}

.mf-acf-form .acf-checkbox-list label,
.mf-acf-form .acf-radio-list label {
    font-weight: normal;
    cursor: pointer;
}

/* ACF True/False Toggle */
.mf-acf-form .acf-true-false {
    padding: var(--mf-spacing-sm) 0;
}

/* ACF Repeater */
.mf-acf-form .acf-repeater {
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    overflow: hidden;
}

.mf-acf-form .acf-repeater .acf-row {
    border-bottom: 1px solid var(--neutral-light);
}

.mf-acf-form .acf-repeater .acf-row:last-child {
    border-bottom: none;
}

/* ACF Tab */
.mf-acf-form .acf-tab-wrap {
    margin-bottom: var(--mf-spacing-lg);
    border-bottom: 2px solid var(--base-light);
}

.mf-acf-form .acf-tab-group li a {
    padding: var(--mf-spacing-sm) var(--mf-spacing-md);
    font-weight: 500;
    color: var(--base-semi-dark);
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}

.mf-acf-form .acf-tab-group li.active a {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

/* ACF Message/Instructions */
.mf-acf-form .acf-field .description,
.mf-acf-form .acf-label .description {
    color: var(--base-semi-dark);
    font-size: 13px;
    margin-top: var(--mf-spacing-xs);
}

/* ACF Submit Button */
.mf-acf-form .acf-form-submit {
    margin-top: var(--mf-spacing-xl);
    padding-top: var(--mf-spacing-lg);
    border-top: 1px solid var(--base-light);
}

.mf-acf-form .acf-form-submit input[type="submit"] {
    display: inline-block;
    padding: 12px 24px;
    background: var(--mf-color-success);
    color: #fff;
    border: none;
    border-radius: var(--mf-radius-sm);
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s;
}

.mf-acf-form .acf-form-submit input[type="submit"]:hover {
    background: var(--mf-color-success-dark);
}

/* ACF Notice */
.mf-acf-form .acf-notice {
    padding: var(--mf-spacing-md);
    border-radius: var(--mf-radius-sm);
    margin-bottom: var(--mf-spacing-lg);
}

.mf-acf-form .acf-notice.-success {
    background: var(--mf-color-bg-success);
    border: 1px solid var(--mf-color-success);
    color: var(--mf-color-success-dark);
}

.mf-acf-form .acf-notice.-error {
    background: var(--secondary-ultra-light);
    border: 1px solid var(--secondary-light);
    color: #c62828;
}

/* ACF Image/File Upload */
.mf-acf-form .acf-image-uploader,
.mf-acf-form .acf-file-uploader {
    border: 2px dashed var(--base-light);
    border-radius: var(--mf-radius-sm);
    padding: var(--mf-spacing-lg);
    text-align: center;
    transition: border-color 0.2s, background-color 0.2s;
}

.mf-acf-form .acf-image-uploader:hover,
.mf-acf-form .acf-file-uploader:hover {
    border-color: var(--primary);
    background: var(--neutral);
}

.mf-acf-form .acf-image-uploader.has-value {
    border-style: solid;
}

/* Post Title & Content Fields */
.mf-acf-form .acf-form > .acf-fields > .acf-field-post-title,
.mf-acf-form .acf-form > .acf-fields > .acf-field-post-content {
    background: var(--neutral);
    padding: var(--mf-spacing-md) !important;
    border-radius: var(--mf-radius-sm);
    margin-bottom: var(--mf-spacing-md);
}

/* Horizontal Rule in forms */
.mf-acf-form hr {
    margin: var(--mf-spacing-lg) 0;
    border: none;
    border-top: 1px solid var(--base-light);
}

/* Password fields section */
.mf-acf-form .password-fields {
    margin-top: var(--mf-spacing-lg);
    padding-top: var(--mf-spacing-lg);
    border-top: 1px solid var(--base-light);
}

.mf-acf-form .password-fields .acf-field {
    margin-bottom: var(--mf-spacing-md);
}

.mf-acf-form .password-fields label {
    display: block;
    margin-bottom: var(--mf-spacing-xs);
    font-weight: 600;
}

.mf-acf-form .password-fields input[type="password"] {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    font-size: 16px;
    box-sizing: border-box;
}

.mf-acf-form .password-fields input[type="password"]:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: var(--mf-shadow-focus);
}

/* --------------------------------------------------------------------------
   Specific form wrappers (aliases for backward compatibility)
   -------------------------------------------------------------------------- */
.mf-new-project,
.mf-edit-project,
.mf-user-profile {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--mf-spacing-lg);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 600px) {
    .mf-project {
        flex-direction: column;
    }

    .mf-project__thumbnail {
        flex: none;
    }

    .mf-applications__item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--mf-spacing-xs);
    }

    .mf-projects__header {
        flex-direction: column;
        gap: var(--mf-spacing-sm);
        align-items: stretch;
    }

    .mf-projects__header h2 {
        margin: 0;
    }

    .mf-application__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .mf-application__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ==========================================================================
   Login Page
   ========================================================================== */

.mf-login {
    max-width: 400px;
    margin: 0 auto;
    padding: var(--mf-spacing-xl);
}

.mf-login h2 {
    text-align: center;
    margin-bottom: var(--mf-spacing-lg);
    color: var(--base);
}

.mf-login .mf-form__group {
    margin-bottom: var(--mf-spacing-md);
}

.mf-login .mf-form__group label {
    display: block;
    margin-bottom: var(--mf-spacing-xs);
    font-weight: 500;
    color: var(--base);
}

.mf-login .mf-form__group input[type="text"],
.mf-login .mf-form__group input[type="password"],
.mf-login .mf-form__group input[type="email"] {
    width: 100%;
    padding: var(--mf-spacing-sm) var(--mf-spacing-md);
    border: 1px solid var(--base-light);
    border-radius: var(--mf-radius-sm);
    font-size: 1rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.mf-login .mf-form__group input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(106, 220, 255, 0.1);
}

.mf-login .mf-form__group--inline {
    display: flex;
    align-items: center;
}

.mf-login .mf-checkbox {
    display: flex;
    align-items: center;
    gap: var(--mf-spacing-xs);
    cursor: pointer;
    font-weight: normal;
}

.mf-login .mf-checkbox input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.mf-login .mf-form__actions {
    margin-top: var(--mf-spacing-lg);
}

.mf-login .mf-form__actions .mf-button {
    width: 100%;
    justify-content: center;
}

.mf-login__links {
    margin-top: var(--mf-spacing-lg);
    text-align: center;
    padding-top: var(--mf-spacing-lg);
    border-top: 1px solid var(--base-light);
}

.mf-login__links p {
    margin: var(--mf-spacing-xs) 0;
    color: var(--base-semi-light);
}

.mf-login__links a {
    color: var(--primary);
    text-decoration: none;
}

.mf-login__links a:hover {
    text-decoration: underline;
}

/* Login page messages */
.mf-login .mf-message {
    margin-bottom: var(--mf-spacing-lg);
}

.mf-login .mf-message a {
    color: inherit;
    text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Components: Checklist
   -------------------------------------------------------------------------- */
.mf-checklist {
    margin-top: var(--mf-spacing-md);
    border: 1px solid var(--mf-color-border);
    border-radius: var(--mf-radius-md);
    overflow: hidden;
}

.mf-checklist__item {
    display: flex;
    align-items: center;
    gap: var(--mf-spacing-sm);
    padding: var(--mf-spacing-sm) var(--mf-spacing-md);
    font-size: var(--mf-font-size-base);
    border-bottom: 1px solid var(--mf-color-border-light);
}

.mf-checklist__item:last-child {
    border-bottom: none;
}

.mf-checklist__item--error {
    background: var(--mf-color-bg-error);
}

.mf-checklist__item--warning {
    background: var(--mf-color-bg-warning);
}

.mf-checklist__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: bold;
    font-size: 12px;
    color: #fff;
}

.mf-checklist__item--error .mf-checklist__icon {
    background: var(--mf-color-danger);
}

.mf-checklist__item--warning .mf-checklist__icon {
    background: var(--mf-color-warning);
}

.mf-checklist__message {
    flex-grow: 1;
}

.mf-checklist__item--error .mf-checklist__message {
    color: var(--mf-color-danger-dark);
}

.mf-checklist__item--warning .mf-checklist__message {
    color: var(--mf-color-warning-dark);
}

.mf-checklist__link {
    flex-shrink: 0;
    font-size: var(--mf-font-size-sm);
    font-weight: 500;
    text-decoration: none;
}

.mf-checklist__item--error .mf-checklist__link {
    color: var(--mf-color-danger);
}

.mf-checklist__item--warning .mf-checklist__link {
    color: var(--mf-color-warning-dark);
}

.mf-checklist__link:hover {
    text-decoration: underline;
}




/* --------------------------------------------------------------------------
   ACF Repeater Button Override
   -------------------------------------------------------------------------- */
.acf-repeater-add-row.button-primary {
    background: var(--accent);
    color: var(--btn-text-color);
    padding-block: var(--btn-padding-block);
    padding-inline: var(--btn-padding-inline);
    min-inline-size: var(--btn-min-width);
    line-height: var(--btn-line-height);
    font-size: var(--btn-font-size, var(--text-m));
    font-weight: var(--btn-font-weight);
    font-style: var(--btn-font-style);
    text-transform: var(--btn-text-transform);
    letter-spacing: var(--btn-letter-spacing);
    text-decoration: var(--btn-text-decoration);
    border-width: var(--btn-border-width);
    border-style: var(--btn-border-style);
    border-radius: var(--btn-radius);
    border-color: var(--accent);
    transition: var(--btn-transition, var(--transition));
    justify-content: var(--btn-justify-content, center);
    text-align: var(--btn-text-align, center);
}

.acf-repeater-add-row.button-primary:hover {
    background: var(--tertiary);
    color: var(--white);
    border-color: var(--tertiary);
}

/* --------------------------------------------------------------------------
   ACF Repeater Icons Fix
   Oprava viditelnosti ikon v ACF repeater poli na frontendu
   ACF používá dashicons font pro ikony
   -------------------------------------------------------------------------- */
.acf-repeater .acf-row-handle.remove {width: 36px;}