/* ============================================================================
   Dědictví – sdílené UI komponenty (Krok D).
   Jediný zdroj pravdy pro opakující se prvky napříč veřejnými stránkami.
   Postaveno čistě na tokenech z dedictvi-tokens-*.css (--ded-fe-* / --ded-*).
   Načítá se globálně (admin i frontend) hned po tokenech.

   Nový kód používej rovnou tyto třídy:
     <button class="ded-btn ded-btn--primary">…</button>
   Stávající feature soubory jsou normalizované na stejné hodnoty (Krok D/dávka 1),
   takže vizuálně sedí; postupně se mohou na tyto třídy přepsat.
   ============================================================================ */

/* ----- TLAČÍTKA -------------------------------------------------------------
   Kanonický tvar: pill, font 600/0.95rem, jednotný padding, hover-lift.
   Varianty: --primary (červená), --secondary (bílá + červený outline),
   --muted (bílá + šedý outline), --dark (tmavá), --submit (větší důraz),
   --block (na celou šířku). */
.ded-btn,
.nkd-form .btn,
.nkd-tip-btn,
.dedictvi-cesta .dc-btn,
.nkd-rozcesti-card-btn,
.nkd-anketa-wrap .nkd-anketa-btn, a.nkd-anketa-btn, .nkd-anketa-btn,
.nkd-oponent-wrap .oponent-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: var(--ded-fe-radius-pill);
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: all var(--ded-duration, 0.15s) var(--ded-ease, ease);
}
.ded-btn svg { width: 16px; height: 16px; fill: currentColor; }

.ded-btn--primary {
    background: var(--ded-fe-red);
    color: var(--ded-fe-white);
}
.ded-btn--primary:hover {
    background: var(--ded-fe-red-hover);
    transform: translateY(-1px);
}

.ded-btn--submit {
    padding: 0.85rem 2rem;
    font-size: 1rem;
    background: var(--ded-fe-red);
    color: var(--ded-fe-white);
}
.ded-btn--submit:hover {
    background: var(--ded-fe-red-hover);
    box-shadow: var(--ded-fe-shadow-md);
    transform: translateY(-1px);
}

.ded-btn--secondary {
    background: var(--ded-fe-white);
    color: var(--ded-fe-red);
    border: 1.5px solid var(--ded-fe-red);
}
.ded-btn--secondary:hover {
    background: var(--ded-fe-red-light);
}

.ded-btn--muted {
    background: var(--ded-fe-white);
    color: var(--ded-fe-muted);
    border: 1.5px solid var(--ded-fe-border);
}
.ded-btn--muted:hover {
    background: var(--ded-fe-bg);
    color: var(--ded-fe-ink);
    border-color: var(--ded-fe-ink-soft);
}

.ded-btn--dark {
    background: var(--ded-fe-ink);
    color: var(--ded-fe-white);
}
.ded-btn--dark:hover {
    background: #1a1a1a;
}

.ded-btn--block { width: 100%; }

.ded-btn:disabled,
.ded-btn.is-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* ----- KARTY ---------------------------------------------------------------
   Plocha s jednotným zaoblením rohů. Padding je obsahově závislý – necháváme
   na konkrétním místě. --raised přidá stín + hover-lift, --accent levý proužek. */
.ded-card {
    background: var(--ded-fe-white);
    border: 1px solid var(--ded-fe-border);
    border-radius: var(--ded-fe-radius);
}
.ded-card--raised {
    box-shadow: var(--ded-fe-shadow-sm);
    transition: box-shadow var(--ded-duration, 0.15s) var(--ded-ease, ease),
                border-color var(--ded-duration, 0.15s) var(--ded-ease, ease),
                transform var(--ded-duration, 0.15s) var(--ded-ease, ease);
}
.ded-card--raised:hover {
    box-shadow: var(--ded-fe-shadow-md);
    border-color: var(--ded-fe-border-strong);
    transform: translateY(-1px);
}
.ded-card--accent {
    border-left: 4px solid var(--ded-fe-red);
}

/* ----- BADGE / PILULKY -----------------------------------------------------
   Malý stavový štítek, vždy pill. Varianty barev navázané na stavové tokeny. */
.ded-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 2px 10px;
    border-radius: var(--ded-fe-radius-pill);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.6;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}
.ded-badge--neutral { background: var(--ded-bg-subtle); color: var(--ded-muted); }
.ded-badge--success { background: var(--ded-green-bg); color: var(--ded-green); }
.ded-badge--warning { background: var(--ded-warn-bg);  color: var(--ded-warn); }
.ded-badge--danger  { background: var(--ded-error-bg); color: var(--ded-error); }
.ded-badge--info    { background: var(--ded-blue-bg);  color: var(--ded-blue); }
.ded-badge--brand   { background: var(--ded-red-soft); color: var(--ded-red); }

/* ----- INPUTY --------------------------------------------------------------
   Pole s jednotným rámečkem a focus-ringem (červený border + 3px ring). */
.ded-input {
    width: 100%;
    padding: 0.6rem 0.8rem;
    border: 1.5px solid var(--ded-fe-border);
    border-radius: var(--ded-fe-radius);
    background: var(--ded-fe-white);
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--ded-fe-ink);
    box-sizing: border-box;
    transition: border-color var(--ded-duration, 0.15s) var(--ded-ease, ease),
                box-shadow var(--ded-duration, 0.15s) var(--ded-ease, ease);
}
.ded-input::placeholder { color: var(--ded-fe-muted); }
.ded-input:focus {
    outline: none;
    border-color: var(--ded-fe-red);
    box-shadow: var(--ded-focus);
}

/* ----- POMOCNÉ -------------------------------------------------------------
   Sdílená rotační animace (spinnery), sekční „eyebrow" titulek, prázdný stav. */
@keyframes ded-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.ded-eyebrow {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ded-muted);
}

.ded-empty, .dedictvi-anketa-empty, .nkd-anketa-empty-tips, .dedictvi-email-empty, .dedictvi-thread-empty, .dj-empty, .dedictvi-jednani-list-empty, .dedictvi-jednani-program-empty, .nkd-msm-dd-empty, .nkd-mapa-list-empty, .ded-fotky-empty, .ded-mistri-empty, .oponent-empty, .nkd-archiv-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--ded-fe-muted);
    font-size: 0.9rem;
}
