.ft-form,
.ft-gallery,
.ft-empty {
    --ft-bg: var(--3p-panel, #252b30);
    --ft-text: var(--3p-text, #ffffff);
    --ft-muted: var(--3p-text-secondary, #d7dce0);
    --ft-border: var(--3p-border, #68b7e8);
    --ft-input: #171b1f;
    color: var(--ft-text);
}

.ft-form {
    background: var(--ft-bg);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    padding: 22px;
}

.ft-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ft-field-full { grid-column: 1 / -1; }

.ft-field label,
.ft-field strong {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
}

.ft-field small,
.ft-gps-head small {
    display: block;
    color: var(--ft-muted);
    margin-top: 6px;
    line-height: 1.4;
}

.ft-optional { font-weight: 400; color: var(--ft-muted); }

.ft-form input[type="text"],
.ft-form input[type="number"],
.ft-form input[type="file"],
.ft-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 10px;
    background: var(--ft-input);
    color: var(--ft-text);
    padding: 12px 13px;
}

.ft-form textarea { resize: vertical; }

.ft-gps-box {
    border: 1px solid rgba(104,183,232,.45);
    border-radius: 12px;
    padding: 16px;
}

.ft-gps-head {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: space-between;
}

.ft-gps-status {
    margin-top: 12px;
    color: var(--ft-muted);
}
.ft-gps-status.is-ok { color: #9fe3b0; }
.ft-gps-status.is-error { color: #ffb1b1; }

.ft-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 11px 18px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
}

.ft-button-secondary {
    background: transparent;
    color: var(--ft-text);
    border: 1px solid var(--ft-border);
}

.ft-submit {
    margin-top: 18px;
    background: var(--ft-border);
    color: #101417;
}

.ft-consent {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    color: var(--ft-muted);
    line-height: 1.45;
}

.ft-consent input { margin-top: 4px; }

.ft-notice {
    padding: 13px 15px;
    border-radius: 10px;
    margin-bottom: 14px;
}
.ft-success { background: #183e27; color: #d7ffe3; }
.ft-error { background: #4a2020; color: #ffdede; }

.ft-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ft-card {
    overflow: hidden;
    border-radius: 16px;
    background: var(--ft-bg);
    border: 1px solid rgba(255,255,255,.08);
}

.ft-card-image img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.ft-card-body { padding: 16px; }
.ft-card-body h3 { margin: 0 0 6px; color: var(--ft-text); }
.ft-card-place { font-weight: 700; margin-bottom: 4px; }
.ft-card-author { color: var(--ft-muted); font-size: .93em; margin-bottom: 10px; }
.ft-card-description { color: var(--ft-muted); }
.ft-map-link { color: var(--ft-border); font-weight: 700; }
.ft-empty { padding: 18px; border-radius: 12px; background: var(--ft-bg); }

.column-ft_thumb { width: 82px; }
.column-ft_author { width: 14%; }
.column-ft_place { width: 22%; }
.column-ft_gps { width: 90px; }

@media (max-width: 780px) {
    .ft-grid,
    .ft-gallery { grid-template-columns: 1fr; }
    .ft-gps-head { align-items: stretch; flex-direction: column; }
    .ft-button-secondary { width: 100%; }
    .ft-form { padding: 16px; }
}
