/* Sdílená komponenta formuláře osoby (.osoba-form).
   Vzhled sjednocen se žádostním formulářem (sjednocení veřejných formulářů). */
.osoba-form .of-grid { display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.2rem; }
/* Podsekce: na frontendu bez nadpisů a linek (vypadá jako jeden celek),
   v adminu je stylují pravidla pod body.dedictvi-admin-skin níže. */
.osoba-form .of-sekce + .of-sekce { margin-top: .9rem; }
.osoba-form .of-sekce-nazev { display: none; }
.osoba-form .of-fld { display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.osoba-form .of-fld.of-full { grid-column:1 / -1; }
.osoba-form .of-fld label { font-size:.9rem; font-weight:600; color:var(--ded-fe-ink-soft); }

.osoba-form .of-fld input,
.osoba-form .of-fld select,
.osoba-form .of-fld textarea {
    width:100%;
    padding:.6rem .85rem;
    border:1.5px solid var(--ded-fe-border);
    border-radius:var(--ded-fe-radius);
    background:var(--ded-fe-bg);
    font-size:.95rem;
    font-family:inherit;
    color:var(--ded-fe-ink);
    box-sizing:border-box;
    transition:border-color var(--ded-duration,.15s) var(--ded-ease,ease), box-shadow var(--ded-duration,.15s) var(--ded-ease,ease);
}
.osoba-form .of-fld input::placeholder,
.osoba-form .of-fld textarea::placeholder { color:var(--ded-fe-muted); }
.osoba-form .of-fld input:focus,
.osoba-form .of-fld select:focus,
.osoba-form .of-fld textarea:focus {
    outline:none;
    border-color:var(--ded-fe-red);
    background:var(--ded-fe-white);
    box-shadow:0 0 0 3px var(--ded-fe-focus-ring);
}

.osoba-form .of-req { color:var(--ded-fe-err); }
.osoba-form .of-hint { color:var(--ded-fe-muted); font-size:.8rem; }

.osoba-form .of-ico-row { display:flex; gap:.4rem; }
.osoba-form .of-ico-row .of-ico { flex:1; min-width:0; }

/* Pomocná tlačítka (ARES, přidat/odebrat) – jednotný „muted" styl */
.osoba-form .of-ares-btn,
.osoba-form .of-odkaz-add,
.osoba-form .of-vedeni-add {
    background:var(--ded-fe-white);
    border:1.5px solid var(--ded-fe-border);
    border-radius:var(--ded-fe-radius);
    padding:.45rem .9rem;
    cursor:pointer;
    white-space:nowrap;
    font-size:.85rem;
    font-weight:600;
    color:var(--ded-fe-ink-soft);
    font-family:inherit;
    transition:all var(--ded-duration,.15s) var(--ded-ease,ease);
}
.osoba-form .of-ares-btn:hover,
.osoba-form .of-odkaz-add:hover,
.osoba-form .of-vedeni-add:hover {
    border-color:var(--ded-fe-red);
    color:var(--ded-fe-red);
    background:var(--ded-fe-red-light);
}

.osoba-form .of-odkaz-row { display:grid; grid-template-columns:1fr 1.6fr 40px; align-items:start; gap:.4rem; margin-bottom:.4rem; }

/* Pole s URL: input (editace) ↔ klikatelný odkaz (náhled) + tlačítko Upravit.
   Sdílené pro Web i jednotlivé odkazy. */
.osoba-form .of-url-field { display:flex; align-items:center; gap:.4rem; min-width:0; }
.osoba-form .of-url-field .of-url-input { flex:1 1 auto; min-width:0; }
.osoba-form .of-url-field .of-url-link {
    flex:1 1 auto; min-width:0; word-break:break-all; line-height:1.4;
    color:var(--ded-fe-red); text-decoration:none; font-size:.9rem; padding:.55rem .2rem;
}
.osoba-form .of-url-field .of-url-link:hover { text-decoration:underline; }
.osoba-form .of-url-field .of-url-edit {
    flex:0 0 auto; border:1.5px solid var(--ded-fe-border); background:var(--ded-fe-white);
    border-radius:var(--ded-fe-radius); padding:.4rem .7rem; font-size:.8rem; font-weight:600;
    cursor:pointer; white-space:nowrap; color:var(--ded-fe-ink-soft); font-family:inherit;
}
.osoba-form .of-url-field .of-url-edit:hover { border-color:var(--ded-fe-red); color:var(--ded-fe-red); }
/* Náhledový režim: skrýt input; editační/prázdný režim: skrýt odkaz + Upravit */
.osoba-form .of-url-field .of-url-input { display:none; }
.osoba-form .of-url-field.is-editing .of-url-input,
.osoba-form .of-url-field.is-prazdny .of-url-input { display:block; }
.osoba-form .of-url-field.is-editing .of-url-link,
.osoba-form .of-url-field.is-editing .of-url-edit,
.osoba-form .of-url-field.is-prazdny .of-url-link,
.osoba-form .of-url-field.is-prazdny .of-url-edit { display:none; }
.osoba-form .of-odkaz-napoveda { display:block; margin-top:.35rem; }
.osoba-form .of-vedeni-row { display:grid; grid-template-columns:1fr 1fr 1fr 1fr 40px; gap:.4rem; margin-bottom:.4rem; }
.osoba-form .of-kontakt-row { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:.4rem; }
.osoba-form .of-odkaz-del,
.osoba-form .of-vedeni-del {
    display:flex; align-items:center; justify-content:center; align-self:stretch;
    min-height:2.5rem; line-height:1; font-size:1.1rem;
    border:1.5px solid var(--ded-fe-border);
    background:var(--ded-fe-white);
    border-radius:var(--ded-fe-radius);
    cursor:pointer;
    color:var(--ded-fe-muted);
    transition:all var(--ded-duration,.15s) var(--ded-ease,ease);
}
.osoba-form .of-odkaz-del:hover,
.osoba-form .of-vedeni-del:hover { border-color:var(--ded-fe-err); color:var(--ded-fe-err); }

@media(max-width:600px){ .osoba-form .of-grid, .osoba-form .of-vedeni-row, .osoba-form .of-kontakt-row, .osoba-form .of-odkaz-row { grid-template-columns:1fr; } }

/* -----------------------------------------------------------------------
   Sdílené potvrzovací okénko (dedictviConfirm) — Ano/Ne proti omylu.
   Načítá se s osoba-form CSS (admin i frontend), používá se datovým
   atributem data-ded-confirm na libovolném mazacím prvku.
   ----------------------------------------------------------------------- */
.ded-confirm { position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center;
    background:var(--ded-fe-overlay); padding:20px; }
.ded-confirm[hidden] { display:none; }
.ded-confirm-card { background:var(--ded-fe-white); border-radius:var(--ded-fe-radius-lg); max-width:420px; width:100%;
    box-shadow:var(--ded-fe-shadow-modal); padding:22px 22px 16px; animation:dedConfirmIn .16s ease-out; }
@keyframes dedConfirmIn { from{opacity:0;transform:translateY(-6px) scale(.98)} to{opacity:1;transform:none} }
.ded-confirm-text { margin:0 0 18px; font-size:15px; line-height:1.5; color:var(--ded-fe-ink); }
.ded-confirm-akce { display:flex; justify-content:flex-end; gap:8px; }
.ded-confirm-akce button { font-size:14px; font-weight:600; padding:8px 18px; border-radius:var(--ded-fe-radius); cursor:pointer; font-family:inherit; border:1.5px solid transparent; }
.ded-confirm-ne { background:var(--ded-fe-surface-alt); color:var(--ded-fe-ink-soft); }
.ded-confirm-ne:hover { background:var(--ded-fe-surface-alt-hover); }
.ded-confirm-ano { background:var(--ded-fe-red); color:var(--ded-fe-white); }
.ded-confirm-ano:hover { background:var(--ded-fe-red-hover); }

/* Admin: sjednocení se admin design systémem (jen pod body.dedictvi-admin-skin;
   frontend zůstává na --ded-fe-* tokenech výše). */

/* Vzduch od rámu metaboxu a rytmus shodný s ACF poli (15px, mezery 16/20). */
body.dedictvi-admin-skin .postbox .osoba-form { padding: 0 8px 4px; }
body.dedictvi-admin-skin .osoba-form .of-grid { gap: 16px 20px; }

/* Podsekce s linkami: pojmenované oddíly (Subjekt, Adresa, Kontaktní osoba…)
   oddělené jemnou linkou, s drobným červeným nadpisem. */
body.dedictvi-admin-skin .osoba-form .of-sekce {
    margin: 0;
    padding: 15px 0;
    border-bottom: 1px solid var(--ded-border-soft, #f0f0f2);
}
body.dedictvi-admin-skin .osoba-form .of-sekce:last-child {
    border-bottom: 0;
    padding-bottom: 8px;
}
body.dedictvi-admin-skin .osoba-form .of-sekce-nazev {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--ded-muted, #86868b);
    margin-bottom: 10px;
}
/* Nadpis sekce už říká, co pole obsahuje: duplicitní popisek pole skrýt. */
body.dedictvi-admin-skin .osoba-form .of-sekce-adresa .of-fld > label,
body.dedictvi-admin-skin .osoba-form .of-sekce-kontakt .of-fld > label,
body.dedictvi-admin-skin .osoba-form .of-sekce-poznamka .of-fld > label,
body.dedictvi-admin-skin .osoba-form .of-sekce-vedeni .of-fld > label {
    display: none;
}
body.dedictvi-admin-skin .osoba-form .of-fld { gap: 6px; }
body.dedictvi-admin-skin .osoba-form .of-fld label {
    color: var(--ded-ink-soft);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.01em;
}
body.dedictvi-admin-skin .osoba-form .of-hint { font-size: 11.5px; }
body.dedictvi-admin-skin .osoba-form .of-fld input,
body.dedictvi-admin-skin .osoba-form .of-fld select,
body.dedictvi-admin-skin .osoba-form .of-fld textarea {
    font-size: 15px;
    padding: 10px 12px;
}
body.dedictvi-admin-skin .osoba-form .of-ares-btn,
body.dedictvi-admin-skin .osoba-form .of-odkaz-add,
body.dedictvi-admin-skin .osoba-form .of-vedeni-add {
    border: 1px solid var(--ded-border-strong);
    border-radius: var(--ded-radius);
    background: var(--ded-surface);
    color: var(--ded-ink-soft);
    font-size: 13px;
    padding: 10px 16px;
}
body.dedictvi-admin-skin .osoba-form .of-ares-btn:hover,
body.dedictvi-admin-skin .osoba-form .of-odkaz-add:hover,
body.dedictvi-admin-skin .osoba-form .of-vedeni-add:hover {
    border-color: var(--ded-red);
    color: var(--ded-red);
    background: var(--ded-red-soft, #fbecec);
}

/* Závazkový checkbox: klidný šedý blok místo linky (návrh 2026). */
body.dedictvi-admin-skin .postbox .of-zavazek {
    margin: 12px 8px 10px;
    padding: 11px 14px;
    background: var(--ded-bg, #f5f5f7);
    border-radius: 9px;
    font-size: 13px;
    color: var(--ded-ink-soft, #50575e);
}
body.dedictvi-admin-skin .postbox .of-zavazek label { font-weight: 500 !important; }
body.dedictvi-admin-skin .postbox .of-zavazek input { accent-color: var(--ded-red); }

/* Rytmus polí komponenty sladěný s ACF (14px, kratší padding). */
body.dedictvi-admin-skin .osoba-form .of-fld input,
body.dedictvi-admin-skin .osoba-form .of-fld select,
body.dedictvi-admin-skin .osoba-form .of-fld textarea {
    font-size: 14px;
    padding: 8px 11px;
    border-radius: 9px;
}
body.dedictvi-admin-skin .osoba-form .of-ico-row { max-width: 340px; }
body.dedictvi-admin-skin .osoba-form .of-ares-btn { padding: 8px 14px; font-size: 12.5px; }
body.dedictvi-admin-skin .osoba-form .of-fld input,
body.dedictvi-admin-skin .osoba-form .of-fld select,
body.dedictvi-admin-skin .osoba-form .of-fld textarea {
    background: var(--ded-surface);
    border: 1px solid var(--ded-border);
    border-radius: var(--ded-radius);
    color: var(--ded-ink);
    box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}
body.dedictvi-admin-skin .osoba-form .of-fld input:focus,
body.dedictvi-admin-skin .osoba-form .of-fld select:focus,
body.dedictvi-admin-skin .osoba-form .of-fld textarea:focus {
    border-color: var(--ded-red);
    background: var(--ded-surface);
    box-shadow: var(--ded-focus);
}

/* ==========================================================================
   Samoobsluha nositelů — stránka /upravit-udaje/
   ========================================================================== */
.ded-samoobsluha {
    max-width: 720px;
}
.ded-samoobsluha-info {
    background: var(--ded-fe-bg);
    border: 1px dashed var(--ded-fe-border-strong);
    border-radius: var(--ded-fe-radius, 10px);
    padding: 10px 14px;
    font-size: .92rem;
    color: var(--ded-fe-muted-strong);
}
.ded-samoobsluha-vzkaz {
    margin-top: 1rem;
}
.ded-samoobsluha-vzkaz label {
    display: block;
    font-weight: 600;
    font-size: .92rem;
    margin-bottom: 6px;
}
.ded-samoobsluha-vzkaz textarea {
    width: 100%;
    border: 1.5px solid var(--ded-fe-border);
    border-radius: var(--ded-fe-radius, 10px);
    background: var(--ded-fe-input-bg);
    padding: 10px 12px;
    font-family: var(--ded-fe-font);
    font-size: .95rem;
}
.ded-so-submit {
    background: var(--ded-fe-red);
    color: var(--ded-fe-white);
    border: none;
    border-radius: var(--ded-fe-radius-btn, 999px);
    padding: 11px 26px;
    font-family: var(--ded-fe-font);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease;
}
.ded-so-submit:hover {
    background: var(--ded-fe-red-hover);
}
.ded-so-submit:disabled {
    opacity: .6;
    cursor: default;
}
.ded-samoobsluha-status {
    font-size: .92rem;
    color: var(--ded-fe-muted-strong);
}

/* Portál nositele: sekce Kulturní projev / Akce / Fotky na stránce samoobsluhy */
.ded-so-portal {
    margin-top: 34px;
    border-top: 2px solid var(--ded-fe-border);
    padding-top: 18px;
}
.ded-so-portal h2 {
    font-size: 1.25rem;
    margin: 22px 0 8px;
}
.ded-so-portal h3 {
    font-size: 1.05rem;
    margin: 14px 0 6px;
}
.ded-so-tradice {
    margin: 0 0 6px;
    padding-left: 20px;
}
.ded-so-tradice a {
    font-size: .88rem;
    margin-left: 6px;
}
.ded-so-blok {
    border: 1.5px solid var(--ded-fe-border);
    border-radius: var(--ded-fe-radius, 10px);
    padding: 14px 16px;
    margin: 0 0 14px;
    background: var(--ded-fe-input-bg);
}
.ded-so-mini {
    font-size: .9rem;
    color: var(--ded-fe-muted-strong);
    margin: 4px 0;
}
.ded-so-ceka {
    color: var(--ded-fe-red);
}
.ded-so-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px 14px;
    margin: 8px 0;
}
.ded-so-grid label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: .92rem;
    font-weight: 600;
}
.ded-so-grid input,
.ded-so-grid select {
    border: 1.5px solid var(--ded-fe-border);
    border-radius: var(--ded-fe-radius, 10px);
    background: var(--ded-fe-white);
    padding: 9px 11px;
    font-family: var(--ded-fe-font);
    font-size: .95rem;
    font-weight: 400;
}
.ded-so-wide {
    grid-column: 1 / -1;
}
.ded-so-prohlaseni {
    display: block;
    font-size: .9rem;
    margin: 10px 0 4px;
}
.ded-so-prohlaseni input {
    accent-color: var(--ded-fe-red);
    margin-right: 6px;
}

/* Placeholdery (předvyplněné nápovědy) světlejší, ať nepůsobí jako vyplněná
   hodnota — platí pro frontend i admin komponentu osoby. */
.osoba-form input::placeholder,
.osoba-form textarea::placeholder { color:var(--ded-fe-placeholder) !important; opacity:1; }
