/* =========================================================================
 * css/terminy_orphan.css  – stavy výběru + bublina s návrhy oprav
 *
 * 2026: Sjednoceno s paletou mřížky v main.css.
 *  - os-blocked / os-gap NEROZLIŠUJEME → vypadají jako běžné volno.
 *    (Logika v JS zůstává; systém nedovolí vzniknout mezeře, takže
 *     uživatel tyto stavy nemá vnímat jako zvláštní.)
 *  - Bublina návrhů (os-suggest) laděná na brand tokeny z main.css.
 * Fallbacky níže fungují i bez main.css.
 * ========================================================================= */

/* Vybraný slot — indigo z brandu (sladěno se "slot-pending-me") */
.terminy_table td.os-selected {
    background: var(--brand, #22224c) !important;
    color: #fff;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.55);
}

/* os-blocked a os-gap záměrně vypadají jako VOLNO k rezervaci.
   Žádná červená, žádné pulzování, žádný žlutý prstenec. */
.terminy_table td.os-blocked,
.terminy_table td.os-gap {
    background: var(--slot-free, #a7e9bf) !important;
    color: var(--slot-free-ink, #0f5132);
    box-shadow: none !important;
    animation: none !important;
}

/* ---- bublina s návrhy ---- */
.terminy_table td { position: relative; }

.os-suggest {
    position: absolute;
    z-index: 40;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 240px;
    max-width: 320px;
    padding: 10px 10px 8px;
    background: var(--bg-card, #fff);
    color: var(--ink, #0a0e27);
    border: 1px solid var(--line, #e7e9f3);
    border-radius: var(--radius, 16px);
    box-shadow: var(--shadow-lg, 0 20px 60px rgba(10,14,39,.12));
    text-align: left;
    font-size: 13px;
    line-height: 1.35;
}
.os-suggest::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 7px solid transparent;
    border-bottom-color: var(--bg-card, #fff);
}

.os-suggest-head {
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--ink, #0a0e27);
}

.os-suggest-btn {
    display: block;
    width: 100%;
    margin: 5px 0;
    padding: 8px 10px;
    border: 1px solid var(--line, #e7e9f3);
    border-radius: var(--radius-sm, 10px);
    background: var(--bg-soft, #f7f8fc);
    color: var(--ink, #0a0e27);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}
.os-suggest-btn:hover {
    background: var(--brand-soft, #eef0ff);
    border-color: var(--brand, #22224c);
}

/* posuny = zadarmo (neutrální), rozšíření = za příplatek (zvýrazněné) */
.os-suggest-btn--shift_earlier,
.os-suggest-btn--shift_later { }

.os-suggest-btn--extend {
    background: #fff7e6;
    border-color: #e0b35a;
    font-weight: 600;
}
.os-suggest-btn--extend:hover { background: #ffeecb; }

.os-suggest--nudge .os-suggest-head {
    color: var(--ink-mute, #6b7280);
    font-weight: 600;
}

/* =========================================================================
 * DARK MODE — bublina + stavy
 * ========================================================================= */
[data-theme="dark"] .terminy_table td.os-selected {
    background: var(--brand-muted, #4256bf) !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.45);
}

[data-theme="dark"] .terminy_table td.os-blocked,
[data-theme="dark"] .terminy_table td.os-gap {
    background: var(--slot-free, #1d4d2d) !important;
    color: var(--slot-free-ink, #b6f5cb);
}

[data-theme="dark"] .os-suggest {
    background: var(--bg-card);
    color: var(--ink);
    border-color: var(--line);
}
[data-theme="dark"] .os-suggest::before { border-bottom-color: var(--bg-card); }
[data-theme="dark"] .os-suggest-btn {
    background: var(--bg-soft);
    color: var(--ink);
    border-color: var(--line);
}
[data-theme="dark"] .os-suggest-btn:hover {
    background: var(--brand-soft);
    border-color: var(--brand-muted);
}
[data-theme="dark"] .os-suggest-btn--extend {
    background: #2a2410;
    border-color: #5a4a1e;
    color: #e0c97a;
}
[data-theme="dark"] .os-suggest-btn--extend:hover { background: #3a3010; }
