/* ============================================================
   WEDHUB – styl :: světlý, moderní, plynulý
   ============================================================ */

:root {
    --bg:            #f7f6f3;
    --bg-soft:       #efece4;
    --surface:       #ffffff;
    --surface-2:     #fbfaf7;
    --line:          #ece8df;
    --line-strong:   #ddd6c8;

    --text:          #16181d;
    --text-soft:     #56554d;
    --text-muted:    #9a978c;

    /* Černá – pro hlavní akce/důrazy */
    --ink:           #16181d;
    --ink-600:       #2c2e35;

    /* Zlatá – akcent (dle loga) */
    --gold:          #c4a759;
    --gold-600:      #a8863f;
    --gold-700:      #8a6d2f;
    --gold-050:      #f6efdd;

    /* Aliasy kvůli zpětné kompatibilitě stylů */
    --primary:       var(--gold);
    --primary-600:   var(--gold-600);
    --primary-050:   var(--gold-050);
    --accent:        var(--gold-700);

    --ok:            #2e8b57;
    --warn:          #b8860b;
    --err:           #c0392b;

    --radius:        18px;
    --radius-sm:     12px;
    --radius-lg:     26px;

    --shadow-sm:     0 1px 2px rgba(20,18,10,.04), 0 1px 3px rgba(20,18,10,.06);
    --shadow:        0 6px 24px rgba(30,26,14,.07), 0 2px 6px rgba(30,26,14,.05);
    --shadow-lg:     0 24px 60px rgba(30,26,14,.14), 0 8px 24px rgba(30,26,14,.09);

    --ease:          cubic-bezier(.22,.61,.36,1);
    --dur:           .28s;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html, body {
    margin: 0;
    padding: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--text);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -.01em; }

/* ── Brand mark ─────────────────────────────────────────── */
.brand-mark {
    display: grid;
    place-items: center;
    width: 38px; height: 38px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    box-shadow: 0 6px 16px rgba(168,134,63,.35);
    flex: none;
}
.brand-mark-lg { width: 56px; height: 56px; border-radius: 16px; font-size: 26px; }
.brand-logo { height: 44px; width: auto; display: block; flex: none; }
.auth-logo { display: block; width: 190px; max-width: 72%; height: auto; margin: 0 auto 14px; }

/* ============================================================
   AUTH (login / install)
   ============================================================ */
body.auth {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        radial-gradient(1200px 600px at 80% -10%, #f6efdd 0%, transparent 60%),
        radial-gradient(1000px 500px at -10% 110%, #f1ede3 0%, transparent 55%),
        var(--bg);
    overflow: hidden;
    position: relative;
}
.auth-orb {
    position: fixed;
    border-radius: 50%;
    filter: blur(60px);
    opacity: .5;
    z-index: 0;
    animation: float 14s var(--ease) infinite alternate;
}
.auth-orb-1 { width: 340px; height: 340px; background: #e6d3a3; top: -80px; right: -60px; }
.auth-orb-2 { width: 300px; height: 300px; background: #efe6d0; bottom: -80px; left: -60px; animation-delay: -6s; }
@keyframes float {
    from { transform: translate(0,0) scale(1); }
    to   { transform: translate(30px,40px) scale(1.08); }
}

.auth-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    background: rgba(255,255,255,.82);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    border: 1px solid rgba(255,255,255,.7);
    border-radius: var(--radius-lg);
    padding: 40px 36px;
    box-shadow: var(--shadow-lg);
    animation: rise .6s var(--ease) both;
}
.auth-card-wide { max-width: 520px; }
@keyframes rise {
    from { opacity: 0; transform: translateY(16px) scale(.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.auth-brand { text-align: center; margin-bottom: 28px; }
.auth-brand .brand-mark-lg { margin: 0 auto 16px; }
.auth-brand h1 { font-size: 26px; }
.auth-brand p { margin: 6px 0 0; color: var(--text-soft); font-size: 14px; }

.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-note { text-align: center; color: var(--text-muted); font-size: 13px; margin: 20px 0 0; }

/* ============================================================
   FORM FIELDS
   ============================================================ */
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field > span { font-size: 13px; font-weight: 500; color: var(--text-soft); }
.form-grid > *, .grid-2 > *, .cards > * { min-width: 0; }

.field input,
.field select,
.field textarea {
    width: 100%;
    max-width: 100%;
    padding: 12px 14px;
    font: inherit;
    font-size: 14px;
    color: var(--text);
    background: var(--surface);
    border: 1.5px solid var(--line-strong);
    border-radius: var(--radius-sm);
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
    outline: none;
}
.field textarea { resize: vertical; min-height: 90px; }
.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-050);
    background: var(--surface-2);
}
.field.has-error input,
.field.has-error select { border-color: var(--err); }
.field .err { color: var(--err); font-size: 12px; font-style: normal; }

.check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--text-soft); cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--primary); }

.divider { border: none; border-top: 1px solid var(--line); margin: 8px 0; }
.muted { color: var(--text-muted); font-size: 13px; margin: 0; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 20px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    border: 1.5px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
                background var(--dur) var(--ease), border-color var(--dur) var(--ease);
    white-space: nowrap;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-block { width: 100%; }
.btn-sm { padding: 7px 13px; font-size: 13px; }

.btn-primary {
    background: var(--ink);
    color: #fff;
    box-shadow: 0 8px 20px rgba(22,24,29,.20);
}
.btn-primary:hover { background: var(--ink-600); box-shadow: 0 12px 28px rgba(22,24,29,.30); transform: translateY(-1px); }

.btn-gold {
    background: linear-gradient(135deg, var(--gold), var(--gold-600));
    color: #fff;
    box-shadow: 0 8px 20px rgba(168,134,63,.28);
}
.btn-gold:hover { box-shadow: 0 12px 28px rgba(168,134,63,.4); transform: translateY(-1px); }

.btn-ghost {
    background: var(--surface);
    color: var(--text-soft);
    border-color: var(--line-strong);
}
.btn-ghost:hover { border-color: var(--gold); color: var(--gold-700); }

/* Hamburger + overlay (mobil) */
.hamburger {
    display: none;
    width: 42px; height: 42px; flex: none;
    place-items: center;
    border: 1.5px solid var(--line-strong); border-radius: 12px;
    background: var(--surface); color: var(--text); cursor: pointer;
    padding: 0;
}
.hamburger svg { width: 22px; height: 22px; }
.nav-overlay { display: none; }

/* Sklápěcí menu (desktop) */
.sidebar-collapse, .sidebar-expand { display: none; }
@media (min-width: 761px) {
    .sidebar { transition: width .26s var(--ease), padding .26s var(--ease); }
    .sidebar-collapse {
        display: grid; place-items: center;
        position: absolute; top: 0; left: 0;
        width: 26px; height: 26px; padding: 0;
        border: none; border-radius: 8px;
        background: var(--bg-soft); color: var(--text-muted);
        cursor: pointer; font-size: 16px; line-height: 1;
    }
    .sidebar-collapse:hover { background: var(--line); color: var(--text); }

    body.sidebar-collapsed .sidebar {
        width: 0; min-width: 0; padding-left: 0; padding-right: 0;
        border-right: none; overflow: hidden;
    }
    body.sidebar-collapsed .sidebar > * { visibility: hidden; }

    .sidebar-expand {
        position: fixed; top: 14px; left: 14px; z-index: 80;
        width: 42px; height: 42px; place-items: center; padding: 0;
        border: 1.5px solid var(--line-strong); border-radius: 12px;
        background: var(--surface); color: var(--text); cursor: pointer;
        box-shadow: var(--shadow-sm);
    }
    .sidebar-expand svg { width: 22px; height: 22px; }
    body.sidebar-collapsed .sidebar-expand { display: grid; }
    body.sidebar-collapsed .topbar { padding-left: 68px; }
    body.sidebar-collapsed .ws-banner { margin-left: 68px; }
}

.btn-danger {
    background: var(--surface);
    color: var(--err);
    border-color: #f6c9c6;
}
.btn-danger:hover { background: var(--err); color: #fff; border-color: var(--err); box-shadow: 0 8px 20px rgba(240,68,56,.25); }

/* ============================================================
   APP LAYOUT
   ============================================================ */
body.app { background: var(--bg); }
.layout { display: flex; min-height: 100vh; }

/* Sidebar */
.sidebar {
    width: 264px;
    flex: none;
    background: var(--surface);
    border-right: 1px solid var(--line);
    padding: 22px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100dvh; /* tablet: spodní lišta prohlížeče nesmí zakrýt patičku */
}
.sidebar-top { position: relative; padding: 4px 4px 6px; }
.brand { display: flex; justify-content: center; padding: 6px; }
.brand .brand-logo { height: 56px; }

.nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 13px;
    border-radius: var(--radius-sm);
    color: var(--text-soft);
    font-size: 14px;
    font-weight: 500;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.nav-link .ic { width: 19px; height: 19px; flex: none; }
.nav-link:hover { background: var(--bg-soft); color: var(--text); transform: translateX(2px); }
.nav-link.is-active {
    background: var(--primary-050);
    color: var(--primary-600);
    font-weight: 600;
}

.sidebar-foot {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: var(--radius-sm);
    background: var(--bg-soft);
}
.user-chip { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.avatar {
    display: grid; place-items: center;
    width: 38px; height: 38px; flex: none;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    color: #fff; font-weight: 600; font-size: 13px;
    text-transform: uppercase;
}
.user-meta { display: flex; flex-direction: column; min-width: 0; }
.user-meta strong { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-meta small { font-size: 12px; color: var(--text-muted); }
.btn-logout {
    display: grid; place-items: center;
    width: 36px; height: 36px; flex: none;
    border-radius: 10px;
    color: var(--text-muted);
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.btn-logout .ic { width: 18px; height: 18px; }
.btn-logout:hover { background: #f7e6e2; color: var(--err); }

/* Content */
.content { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar {
    padding: 26px 34px 6px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.topbar h1 { font-size: 24px; margin-right: auto; }
.page { padding: 18px 34px 40px; animation: fadein .4s var(--ease) both; }
@keyframes fadein { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ============================================================
   FLASH
   ============================================================ */
.flash {
    padding: 13px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 500;
    margin: 0 34px 4px;
    border: 1px solid transparent;
    animation: rise .4s var(--ease) both;
}
.auth .flash, .form-card .flash { margin: 0 0 16px; }
.flash-success { background: #e7f8ef; color: #067647; border-color: #b6ebcf; }
.flash-error   { background: #fdecec; color: #b42318; border-color: #f6c9c6; }
.flash-warning { background: #fef6e7; color: #b54708; border-color: #f5dca8; }

/* ============================================================
   CARDS / STATS
   ============================================================ */
.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 26px; }
.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 22px;
    transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.card.stat { display: flex; flex-direction: column; gap: 6px; }
.card.stat:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.stat-label { font-size: 13px; color: var(--text-muted); font-weight: 500; }
.stat-value { font-size: 34px; font-weight: 700; letter-spacing: -.02em;
    background: linear-gradient(135deg, var(--primary-600), var(--accent));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

.section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 4px 0 16px;
}
.section-head h2 { font-size: 18px; }

/* ============================================================
   TABLE
   ============================================================ */
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table thead th {
    text-align: left;
    padding: 12px 14px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--line);
}
.table tbody td { padding: 14px; border-bottom: 1px solid var(--line); color: var(--text-soft); }
.table tbody tr { transition: background var(--dur) var(--ease); }
.table tbody tr:hover { background: var(--surface-2); }
.table tbody tr:last-child td { border-bottom: none; }
.table strong { color: var(--text); font-weight: 600; }
.row-muted { opacity: .55; }
.cell-actions { text-align: right; white-space: nowrap; }
.cell-actions form { display: inline-block; margin-left: 6px; }
.tag-you { font-size: 12px; color: var(--text-muted); font-style: italic; }

/* Badges */
.badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}
.badge-planning    { background: #eef1f8; color: #5a6072; }
.badge-confirmed   { background: #e8f0ff; color: #2563eb; }
.badge-in_progress { background: #fff3e0; color: #c2410c; }
.badge-completed   { background: #e7f8ef; color: #067647; }
.badge-cancelled   { background: #fdecec; color: #b42318; }
.badge-role        { background: var(--primary-050); color: var(--primary-600); }

.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; }
.dot-on  { background: var(--ok); box-shadow: 0 0 0 3px rgba(18,183,106,.15); }
.dot-off { background: var(--text-muted); }

/* Empty state */
.empty { text-align: center; padding: 48px 20px; color: var(--text-muted); }
.empty p { margin: 0 0 16px; font-size: 15px; }

/* ============================================================
   FORM CARD
   ============================================================ */
.form-card { max-width: 760px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field-full { margin-top: 18px; }
.form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }

.search input {
    width: 280px; max-width: 60vw;
    padding: 10px 16px;
    font: inherit; font-size: 14px;
    border: 1.5px solid var(--line-strong);
    border-radius: 999px;
    background: var(--surface);
    outline: none;
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.search input:focus { border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-050); }

/* ============================================================
   VERSION / SETTINGS
   ============================================================ */
.brand-version {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-soft);
    padding: 2px 8px;
    border-radius: 999px;
}
.cards-2 { grid-template-columns: repeat(2, 1fr); max-width: 520px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.card-title { font-size: 16px; margin-bottom: 18px; }

.changelog { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.changelog-item { position: relative; padding-left: 20px; }
.changelog-item::before {
    content: '';
    position: absolute; left: 0; top: 7px;
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-050);
}
.changelog-item:not(:last-child)::after {
    content: '';
    position: absolute; left: 4px; top: 20px; bottom: -18px;
    width: 1.5px; background: var(--line);
}
.changelog-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.changelog-date { font-size: 12px; color: var(--text-muted); margin-left: auto; }
.changelog-notes { font-size: 14px; color: var(--text-soft); line-height: 1.6; }
.changelog-author { font-size: 12px; color: var(--text-muted); margin-top: 6px; font-style: italic; }

/* ============================================================
   LANDING PAGE
   ============================================================ */
body.landing {
    background:
        radial-gradient(1000px 500px at 85% -5%, #f6efdd 0%, transparent 55%),
        radial-gradient(900px 460px at -5% 20%, #f1ede3 0%, transparent 50%),
        var(--surface);
    color: var(--text);
    overflow-x: hidden;
}
.lp-orb { position: fixed; border-radius: 50%; filter: blur(70px); opacity: .4; z-index: 0; pointer-events: none; }
.lp-orb-1 { width: 380px; height: 380px; background: #e6d3a3; top: -100px; right: -80px; }
.lp-orb-2 { width: 320px; height: 320px; background: #efe6d0; top: 40%; left: -100px; }

.lp-nav, .lp-hero, .lp-features, .lp-pricing, .lp-foot { position: relative; z-index: 1; }

.lp-nav {
    display: flex; align-items: center; justify-content: space-between;
    max-width: 1100px; margin: 0 auto; padding: 20px 24px;
}
.lp-logo { height: 46px; width: auto; display: block; }
.lp-actions { display: flex; gap: 10px; }

.lp-hero { max-width: 780px; margin: 0 auto; padding: 60px 24px 40px; text-align: center; }
.lp-eyebrow {
    display: inline-block; font-size: 13px; font-weight: 600; color: var(--primary-600);
    background: var(--primary-050); padding: 6px 14px; border-radius: 999px; margin-bottom: 20px;
}
.lp-hero h1 {
    font-size: clamp(32px, 5vw, 52px); font-weight: 800; line-height: 1.08; letter-spacing: -.02em;
    margin-bottom: 18px;
}
.lp-hero p { font-size: 18px; color: var(--text-soft); line-height: 1.6; margin: 0 auto 30px; max-width: 600px; }
.lp-hero-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.btn-lg { padding: 14px 28px; font-size: 16px; border-radius: 14px; }

.lp-features {
    max-width: 1100px; margin: 30px auto; padding: 0 24px;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.lp-feature {
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 24px; box-shadow: var(--shadow-sm);
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.lp-feature:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.lp-feature-ico {
    width: 48px; height: 48px; margin-bottom: 16px;
    display: grid; place-items: center;
    border-radius: 14px;
    background: var(--primary-050);
    color: var(--primary-600);
}
.lp-feature-ico svg { width: 24px; height: 24px; }
.lp-feature h3 { font-size: 16px; margin-bottom: 6px; }
.lp-feature p { font-size: 14px; color: var(--text-soft); line-height: 1.55; margin: 0; }

.lp-pricing { max-width: 1000px; margin: 70px auto; padding: 0 24px; }
.lp-section-head { text-align: center; margin-bottom: 36px; }
.lp-section-head h2 { font-size: 32px; font-weight: 700; margin-bottom: 10px; }
.lp-section-head p { color: var(--text-soft); font-size: 16px; margin: 0; }

.lp-plans { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 780px; margin: 0 auto; }
.lp-plan {
    position: relative; background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm);
    display: flex; flex-direction: column; gap: 18px;
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.lp-plan:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.lp-plan-featured { border-color: var(--gold); box-shadow: 0 20px 50px rgba(168,134,63,.18); }
.lp-plan-tag {
    position: absolute; top: -12px; right: 24px;
    background: var(--ink); color: var(--gold);
    font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px;
    box-shadow: 0 6px 16px rgba(22,24,29,.28);
}
.lp-plan-head h3 { font-size: 24px; margin-bottom: 4px; }
.lp-plan-head p { color: var(--text-muted); font-size: 14px; margin: 0; }
.lp-plan-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.lp-plan-list li { font-size: 14px; color: var(--text-soft); padding-left: 26px; position: relative; }
.lp-plan-list li::before {
    content: '✓'; position: absolute; left: 0; top: -1px;
    color: var(--primary-600); font-weight: 700;
}
.lp-plan-prices { display: flex; gap: 12px; }
.lp-price {
    flex: 1; background: var(--bg-soft); border-radius: var(--radius-sm); padding: 14px;
    display: flex; flex-direction: column; gap: 2px; text-align: center;
}
.lp-price span { font-size: 12px; color: var(--text-muted); font-weight: 500; }
.lp-price strong { font-size: 20px; font-weight: 700; color: var(--text); }
.lp-price small { font-size: 11px; color: var(--text-muted); }

.lp-foot {
    max-width: 1100px; margin: 40px auto 0; padding: 24px;
    border-top: 1px solid var(--line);
    display: flex; justify-content: space-between; align-items: center;
    color: var(--text-muted); font-size: 13px;
}

/* ── Auth doplňky ─────────────────────────────────────────── */
.link { color: var(--primary-600); font-weight: 600; }
.link:hover { text-decoration: underline; }
.pending-box { text-align: center; padding: 10px 0 24px; }
.pending-ico { font-size: 44px; margin-bottom: 10px; }
.pending-box h2 { font-size: 20px; margin-bottom: 10px; }
.pending-box p { color: var(--text-soft); font-size: 14px; line-height: 1.6; margin: 0; }

/* ── Výběr (radio karty) ──────────────────────────────────── */
.choice-row { display: flex; gap: 10px; }
.choice { flex: 1; cursor: pointer; }
.choice input { position: absolute; opacity: 0; }
.choice-box {
    display: block; text-align: center; padding: 12px;
    border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm);
    transition: all var(--dur) var(--ease); font-size: 14px; color: var(--text-soft);
}
.choice input:checked + .choice-box {
    border-color: var(--primary); background: var(--primary-050); color: var(--primary-600);
    box-shadow: 0 0 0 3px var(--primary-050);
}
.price-live {
    text-align: center; font-size: 15px; color: var(--text-soft);
    background: var(--bg-soft); border-radius: var(--radius-sm); padding: 12px;
}
.price-live strong { color: var(--primary-600); font-size: 18px; }

/* ── Badge / pill ─────────────────────────────────────────── */
.nav-badge {
    margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 700; color: var(--gold);
    background: var(--ink); border-radius: 999px;
}
.count-pill {
    font-size: 13px; font-weight: 700; color: var(--gold-700);
    background: var(--gold-050); padding: 2px 9px; border-radius: 999px; margin-left: 6px;
}

/* ── Licence / ceník ──────────────────────────────────────── */
.license-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.license-row > div { display: flex; flex-direction: column; gap: 4px; }
.license-row strong { font-size: 16px; }
.pricing-table input { width: 120px; padding: 8px 10px; border: 1.5px solid var(--line-strong); border-radius: 10px; font: inherit; }
.pricing-table input:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px var(--primary-050); }

/* ============================================================
   PRACOVNÍ REŽIM SVATBY (workspace)
   ============================================================ */
.ws-back {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 12px; margin: 0 4px;
    font-size: 13px; font-weight: 500; color: var(--text-muted);
    border-radius: var(--radius-sm);
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.ws-back .ic { width: 16px; height: 16px; }
.ws-back:hover { background: var(--bg-soft); color: var(--text); }

.ws-current {
    margin: 4px; padding: 12px 14px;
    background: var(--ink); color: #fff; border-radius: var(--radius-sm);
    display: flex; flex-direction: column; gap: 2px;
}
a.ws-current { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; transition: box-shadow var(--dur) var(--ease); }
a.ws-current:hover, a.ws-current.is-active { box-shadow: 0 0 0 2px var(--gold); }
.ws-current-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ws-current-ico { width: 20px; height: 20px; flex: none; color: var(--gold); }
.ws-current-label { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--gold); font-weight: 600; }
.ws-current strong { font-size: 15px; line-height: 1.3; }

.nav-group-label {
    font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--text-muted); font-weight: 700;
    padding: 14px 13px 6px;
}
.ws-nav { flex: 1; overflow-y: auto; }

.avatar-ink { background: var(--ink) !important; color: var(--gold) !important; }

.ws-banner {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    margin: 18px 34px 0; padding: 14px 18px;
    background: linear-gradient(100deg, #fdfbf5, #fff);
    border: 1px solid var(--gold); border-left: 4px solid var(--gold);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
}
.ws-banner-left { display: flex; align-items: center; gap: 14px; }
.ws-banner-left strong { display: block; font-size: 15px; }
.ws-banner-left small { color: var(--text-muted); font-size: 13px; }
.ws-badge {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--gold-700); background: var(--gold-050);
    padding: 6px 12px; border-radius: 999px; white-space: nowrap;
}

.detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.detail-grid > div { display: flex; flex-direction: column; gap: 4px; }
.detail-grid strong { font-size: 15px; }
.detail-notes { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.detail-notes p { margin: 6px 0 0; color: var(--text-soft); line-height: 1.6; }
.empty-ico { font-size: 40px; margin-bottom: 8px; }

/* Chip pro pokračování v návrhu (běžné menu) */
.resume-chip {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 14px; border-radius: 999px;
    background: var(--ink); color: #fff; font-size: 13px; font-weight: 500;
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.resume-chip:hover { transform: translateY(-1px); box-shadow: var(--shadow); }
.resume-chip b { color: var(--gold); }

/* ============================================================
   DESIGNÉR MÍSTNOSTÍ
   ============================================================ */
.rd { display: grid; grid-template-columns: 300px 1fr; gap: 20px; align-items: start; }

.rd-tools {
    display: flex; flex-direction: column; gap: 18px;
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 18px;
    position: sticky; top: 16px;
}
.rd-block { display: flex; flex-direction: column; gap: 10px; }
.rd-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.rd-room-row { display: flex; gap: 8px; }
.rd-select {
    flex: 1; padding: 10px 12px; font: inherit; font-size: 14px;
    border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm);
    background: var(--surface); outline: none;
}
.rd-select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-050); }
.rd-dims { display: flex; flex-direction: column; gap: 10px; }
.rd-dims-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rd-room-actions, .rd-sel-actions { display: flex; gap: 8px; }
.rd-tools .field span { font-size: 12px; }
.rd-tools .field input { padding: 9px 11px; font-size: 14px; }

/* paleta tvarů */
.rd-palette { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rd-shape {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    padding: 14px 8px; font: inherit; font-size: 13px; font-weight: 500; color: var(--text-soft);
    background: var(--surface-2); border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm);
    cursor: pointer; transition: all var(--dur) var(--ease);
}
.rd-shape:hover { border-color: var(--gold); color: var(--gold-700); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.rd-shape-ico { display: grid; place-items: center; width: 40px; height: 32px; }
.sh { display: block; background: var(--ink); }
.sh-round  { width: 30px; height: 30px; border-radius: 50%; }
.sh-square { width: 28px; height: 28px; border-radius: 5px; }
.sh-rect   { width: 38px; height: 22px; border-radius: 5px; }
.sh-oval   { width: 38px; height: 24px; border-radius: 50%; }

.rd-summary { border-top: 1px solid var(--line); padding-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.rd-sum-row { display: flex; justify-content: space-between; font-size: 14px; color: var(--text-soft); }
.rd-sum-row strong { color: var(--text); font-size: 16px; }

.rd-selected { border-top: 1px solid var(--line); padding-top: 14px; }
.rd-sides { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rd-side {
    padding: 8px; font: inherit; font-size: 13px; font-weight: 500; color: var(--text-soft);
    background: var(--surface-2); border: 1.5px solid var(--line-strong); border-radius: 10px;
    cursor: pointer; transition: all var(--dur) var(--ease);
}
.rd-side:hover { border-color: var(--gold); }
.rd-side.is-on { background: var(--ink); color: var(--gold); border-color: var(--ink); }

/* plátno */
.rd-stage-wrap {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden;
}
.rd-stage-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 18px; border-bottom: 1px solid var(--line);
}
.rd-stage-info { font-size: 13px; color: var(--text-muted); }
.rd-stage-info strong { color: var(--text); }
.rd-stage-actions { display: flex; align-items: center; gap: 12px; }
.rd-save-state { font-size: 12px; font-weight: 600; }
.rd-save-state.is-dirty { color: var(--warn); }
.rd-save-state.is-clean { color: var(--ok); }

.rd-stage-scroll { overflow: auto; padding: 28px; background:
    radial-gradient(circle at 20% 20%, #faf8f2, var(--surface-2)); max-height: 82vh; }
.rd-stage { display: flex; justify-content: center; align-items: flex-start; min-height: 300px; }

.rd-room {
    position: relative;
    background:
        linear-gradient(to right, rgba(22,24,29,.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(22,24,29,.05) 1px, transparent 1px),
        var(--surface);
    border: 0;              /* obrys kreslí SVG podle tvaru (polygon) */
    flex: none;
}

.rd-empty { text-align: center; padding: 60px 20px; color: var(--text-muted); }
.rd-empty p { margin: 0 0 14px; }

/* stůl */
.rd-table { position: absolute; touch-action: none; cursor: grab; }
.rd-table.is-dragging { cursor: grabbing; z-index: 20; }
.rd-table-body {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: linear-gradient(145deg, #f3ead2, #e6d4a4);
    border: 2px solid var(--gold-600);
    color: var(--ink);
    box-shadow: inset 0 1px 3px rgba(255,255,255,.6), 0 2px 6px rgba(30,26,14,.12);
    overflow: hidden;
}
.shape-round .rd-table-body, .shape-oval .rd-table-body { border-radius: 50%; }
.shape-square .rd-table-body, .shape-rectangle .rd-table-body { border-radius: 2px; }
.rd-table.is-selected .rd-table-body {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px var(--gold), 0 6px 16px rgba(30,26,14,.2);
}
.rd-t-label { font-size: 11px; font-weight: 600; line-height: 1.1; text-align: center; padding: 0 4px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-t-seats { font-size: 10px; color: var(--gold-700); font-weight: 700; }

/* úchyty změny velikosti */
.rd-resize {
    position: absolute; width: 12px; height: 12px;
    background: #fff; border: 2px solid var(--ink); border-radius: 2px;
    display: none; z-index: 30; touch-action: none;
}
.rd-obj.is-selected .rd-resize { display: block; }
.rz-nw { left: -6px; top: -6px; cursor: nwse-resize; }
.rz-ne { right: -6px; top: -6px; cursor: nesw-resize; }
.rz-sw { left: -6px; bottom: -6px; cursor: nesw-resize; }
.rz-se { right: -6px; bottom: -6px; cursor: nwse-resize; }

/* židle */
.rd-chair {
    position: absolute;
    background: var(--ink);
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
}

/* záložky panelu */
.rd-tabs { display: flex; gap: 4px; background: var(--bg-soft); padding: 4px; border-radius: 12px; }
.rd-tab {
    flex: 1; padding: 8px 6px; font: inherit; font-size: 13px; font-weight: 600;
    color: var(--text-soft); background: transparent; border: none; border-radius: 9px;
    cursor: pointer; transition: all var(--dur) var(--ease);
}
.rd-tab.is-active { background: var(--surface); color: var(--text); box-shadow: var(--shadow-sm); }
.rd-group { display: flex; flex-direction: column; gap: 18px; }
.rd-group[hidden] { display: none; }

/* paleta dekorací */
.rd-decors { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rd-decor-btn {
    display: flex; align-items: center; gap: 8px; padding: 10px;
    font: inherit; font-size: 12.5px; font-weight: 500; color: var(--text-soft);
    background: var(--surface-2); border: 1.5px solid var(--line-strong); border-radius: 10px;
    cursor: pointer; text-align: left; transition: all var(--dur) var(--ease);
}
.rd-decor-btn > span { line-height: 1.15; }
.rd-decor-btn .rd-btn-ico { width: 20px; height: 20px; flex: none; color: var(--gold-700); }
.rd-decor-btn:hover { border-color: var(--gold); color: var(--gold-700); transform: translateY(-1px); }
.rd-decor-btn:hover .rd-btn-ico { color: var(--gold-600); }

/* dekorace na ploše */
.rd-decor { position: absolute; touch-action: none; cursor: grab; }
.rd-decor.is-dragging { cursor: grabbing; z-index: 20; }
.rd-decor-body {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(255,255,255,.5), 0 3px 8px rgba(30,26,14,.12);
}
.rd-decor.shape-round .rd-decor-body, .rd-decor.shape-oval .rd-decor-body { border-radius: 50%; }
.rd-decor.shape-square .rd-decor-body, .rd-decor.shape-rectangle .rd-decor-body { border-radius: 2px; }
.rd-decor.is-selected .rd-decor-body { box-shadow: 0 0 0 3px var(--gold), 0 6px 18px rgba(30,26,14,.25); }

/* ── PLOCHY (velký nábytek) ── */
.rd-decor-body.is-surface {
    background: linear-gradient(150deg, #f5ecd4, #e6d4a4);
    border: 1.5px solid var(--gold-600);
    color: var(--ink);
}
.rd-decor-name {
    font-size: clamp(10px, 14px, 16px); font-weight: 700;
    letter-spacing: .04em; text-transform: uppercase; text-align: center;
    padding: 0 8px; max-width: 100%; line-height: 1.15;
    overflow: hidden; text-overflow: ellipsis;
}

/* taneční parket – dlaždice */
.dtype-parket.is-surface {
    background: transparent;
    border: 1.5px dashed var(--gold-700);
    box-shadow: none;
}
.dtype-parket .rd-decor-name { background: rgba(255,255,255,.85); border-radius: 6px; padding: 3px 12px; }

/* pódium / stage / DJ – tmavé */
.dtype-podium.is-surface, .dtype-stage.is-surface, .dtype-dj.is-surface {
    background: linear-gradient(150deg, #33353d, #16181d);
    border-color: var(--ink);
    color: var(--gold);
}
.dtype-podium .rd-decor-name, .dtype-stage .rd-decor-name, .dtype-dj .rd-decor-name { color: #f3ead2; }

/* bar / bufet – horní hrana pultu */
.dtype-bar.is-surface, .dtype-bufet.is-surface { position: absolute; }
.dtype-bar.is-surface::before, .dtype-bufet.is-surface::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 30%;
    background: linear-gradient(var(--gold-700), transparent);
    opacity: .35;
}

/* ── REKVIZITY (malé předměty) ── */
.rd-decor-body.is-prop {
    background: linear-gradient(150deg, #ffffff, #f4efe4);
    border: 1.5px solid var(--gold-600);
    color: var(--gold-700);
}
.rd-decor-svg { width: 44%; height: 44%; max-width: 42px; max-height: 42px; flex: none; }
.dtype-parket .rd-decor-svg { display: none; }
.rd-decor-label {
    font-size: 10px; font-weight: 600; text-align: center; padding: 0 3px;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-soft);
}
/* u velmi malých rekvizit skryj popisek, ať nepřekáží */
.rd-decor-body.is-small .rd-decor-label { display: none; }
.rd-decor-body.is-small .rd-decor-svg { width: 78%; height: 78%; max-width: 60px; max-height: 60px; }

/* pravítko (měřítko) */
.rd-frame { position: relative; display: inline-block; padding: 22px 0 0 22px; }
.rd-corner { position: absolute; top: 0; left: 0; width: 22px; height: 22px; background: var(--surface-2); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rd-ruler { position: absolute; color: var(--text-muted); font-size: 10px; user-select: none; }
.rd-ruler-top { top: 0; left: 22px; height: 22px; }
.rd-ruler-left { left: 0; top: 22px; width: 22px; }
.rd-ruler .rd-tick { position: absolute; }
/* horní: číslo vycentrované nad hodnotou, tick přesně na hodnotě */
.rd-ruler-top .rd-tick { top: 2px; transform: translateX(-50%); }
.rd-ruler-top .rd-tick::before {
    content: ''; position: absolute; left: 50%; bottom: -2px;
    width: 1px; height: 6px; background: var(--line-strong);
}
/* levý: číslo vycentrované vedle hodnoty, tick přesně na hodnotě */
.rd-ruler-left .rd-tick { left: 2px; transform: translateY(-50%); }
.rd-ruler-left .rd-tick::before {
    content: ''; position: absolute; top: 50%; right: -2px;
    height: 1px; width: 6px; background: var(--line-strong);
}

/* ── plán areálu ── */
.rd-site {
    background-color: #fbfaf6;
    background-image:
        linear-gradient(to right, rgba(22,24,29,.035) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(22,24,29,.035) 1px, transparent 1px);
}

/* ── polygonální tvar (pozemek / místnost) ── */
.shp-outline { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
.shp-hit { position: absolute; left: 0; top: 0; overflow: visible; z-index: 44; }
.shp-hit line { cursor: copy; }
.shp-handles { position: absolute; inset: 0; pointer-events: none; z-index: 46; }
.shp-v {
    position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px;
    background: #fff; border: 2px solid var(--ink); border-radius: 2px;
    cursor: move; pointer-events: auto; box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.shp-v:hover { background: var(--gold-050); }
.shp-v.is-sel { background: var(--gold); border-color: var(--ink); }
.is-shape-edit .rd-obj { pointer-events: none; opacity: .45; }
.is-shape-edit .rd-open-handles,
.is-shape-edit .v-paths-hit,
.is-shape-edit .v-path-handles { pointer-events: none !important; }
.is-shape-edit .rd-open-handle { pointer-events: none; }

.shp-presets { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 8px; }
.shp-preset {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 7px 4px; font: inherit; font-size: 11px; font-weight: 600; color: var(--text-soft);
    background: var(--surface-2); border: 1.5px solid var(--line-strong); border-radius: 9px;
    cursor: pointer; transition: all var(--dur) var(--ease);
}
.shp-preset svg { width: 26px; height: 26px; color: var(--ink); }
.shp-preset:hover { border-color: var(--gold); color: var(--gold-700); }
[data-shape-edit].is-on { background: var(--ink); color: var(--gold); border-color: var(--ink); }
.shp-hint { margin-top: 6px; }
.v-area {
    position: absolute; touch-action: none; cursor: grab;
    border: 1px solid rgba(30,26,14,.16); border-radius: 2px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; background-color: #eef0ea;
    box-shadow: 0 2px 10px rgba(30,26,14,.06);
}
.v-area.shape-oval { border-radius: 50%; }
.v-area.is-dragging { cursor: grabbing; z-index: 15; }
.v-area.is-selected { border-color: var(--ink); box-shadow: 0 0 0 3px var(--gold), 0 6px 16px rgba(30,26,14,.18); }
.v-area-tag {
    display: inline-flex; align-items: center; gap: 6px; pointer-events: none;
    background: rgba(255,255,255,.9); border: 1px solid rgba(30,26,14,.06);
    border-radius: 999px; padding: 4px 11px 4px 8px;
    font-size: 11px; font-weight: 600; color: var(--ink);
    box-shadow: 0 2px 8px rgba(30,26,14,.12);
}
.v-tag-ico { width: 14px; height: 14px; flex: none; color: var(--gold-700); }

/* jemné textury venkovních ploch (decentní, plánkové) */
.dtype-grass {
    background-color: #dcebc6;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='22'%3E%3Cg stroke='%23568038' stroke-width='1' fill='none' stroke-linecap='round' opacity='.55'%3E%3Cpath d='M6 16 L6 10'/%3E%3Cpath d='M4 16 L2 11'/%3E%3Cpath d='M8 16 L10 11'/%3E%3Cpath d='M19 21 L19 15'/%3E%3Cpath d='M17 21 L15 16'/%3E%3Cpath d='M21 21 L23 16'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 26px 22px;
}
.dtype-garden {
    background-color: #d9e8c6;
    background-image:
        radial-gradient(circle at 13px 13px, transparent 0 3px, rgba(86,128,56,.42) 3px 3.8px, transparent 4.6px),
        radial-gradient(circle at 13px 13px, rgba(86,128,56,.5) 0 1px, transparent 1.8px),
        radial-gradient(circle at 37px 32px, transparent 0 4px, rgba(86,128,56,.38) 4px 4.8px, transparent 5.6px),
        radial-gradient(circle at 37px 32px, rgba(86,128,56,.46) 0 1px, transparent 1.8px);
    background-size: 50px 46px, 50px 46px, 50px 46px, 50px 46px;
}
.dtype-parking {
    background-color: #e4e6ea;
    background-image: repeating-linear-gradient(90deg, transparent 0 34px, rgba(120,124,135,.45) 34px 35px);
}
.dtype-terrace {
    background-color: #e6cd9a;
    background-image: repeating-linear-gradient(0deg, rgba(120,85,35,.14) 0 1px, transparent 1px 16px);
}
.dtype-path {
    background-color: #e7e1d1;
    background-image: repeating-linear-gradient(0deg, rgba(120,108,84,.16) 0 1px, transparent 1px 12px),
                      repeating-linear-gradient(90deg, rgba(120,108,84,.10) 0 1px, transparent 1px 12px);
}
.dtype-water {
    background-color: #cbe6f4;
    background-image:
        radial-gradient(120% 16px at 50% 0, transparent 0 8px, rgba(255,255,255,.5) 8px 10px, transparent 10px);
    background-size: 100% 18px;
}
.dtype-ceremony {
    background-color: #f4e8c6;
    background-image:
        radial-gradient(circle at 6px 6px, rgba(150,118,48,.35) 0 1.6px, transparent 2px),
        linear-gradient(90deg, transparent 44%, rgba(255,255,255,.45) 44% 56%, transparent 56%);
    background-size: 16px 16px, 100% 100%;
}
.dtype-tent {
    background: repeating-conic-gradient(from 90deg at 50% 0%, #f4eee2 0 16deg, #e7ddca 16deg 32deg);
}

.v-bld {
    position: absolute; touch-action: none; cursor: pointer;
    background:
        repeating-linear-gradient(45deg, rgba(22,24,29,.03) 0 6px, transparent 6px 12px),
        linear-gradient(150deg, #ffffff, #f0eee6);
    border: 2px solid var(--ink); border-radius: 2px;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 8px 22px rgba(30,26,14,.16);
    overflow: hidden;
}
.v-bld.is-dragging { cursor: grabbing; z-index: 25; }
.v-bld.is-selected { box-shadow: 0 0 0 3px var(--gold), 0 10px 24px rgba(30,26,14,.24); }
.v-bld-inner { display: flex; flex-direction: column; align-items: center; gap: 3px; pointer-events: none; padding: 4px; }
.v-bld-ico { width: 26px; height: 26px; color: var(--ink); }
.v-bld-label { font-size: 13px; font-weight: 700; color: var(--ink); text-align: center; line-height: 1.15; }
.v-bld-rooms {
    font-size: 10px; font-weight: 700; color: var(--gold-700);
    background: var(--gold-050); padding: 2px 8px; border-radius: 999px;
}

.v-bld-row {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 6px;
    cursor: pointer; font-size: 14px; transition: border-color var(--dur) var(--ease);
}
.v-bld-row:hover { border-color: var(--gold); }
.v-bld-row small { color: var(--text-muted); }

/* karty místností v budově */
.room-card { display: flex; flex-direction: column; gap: 10px; }
.room-card-head { display: flex; flex-direction: column; gap: 2px; }
.room-card-head strong { font-size: 16px; }
.room-card-head small { color: var(--text-muted); font-size: 12px; }
.room-card-meta { display: flex; gap: 14px; font-size: 13px; color: var(--text-soft); }
.room-card-actions { display: flex; gap: 8px; margin-top: auto; }
.room-card-actions form { display: inline; }

/* vodicí linky přichytávání */
.v-guides, .rd-guides { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; z-index: 35; }

/* vrstvy (přehled objektů) */
.v-layers { display: flex; flex-direction: column; gap: 5px; max-height: 60vh; overflow-y: auto; }
.v-layer {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 8px; border: 1px solid var(--line); border-radius: 9px;
    cursor: pointer; font-size: 13px; transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.v-layer:hover { border-color: var(--gold); }
.v-layer.is-active { border-color: var(--ink); background: var(--gold-050); }
.v-layer.dragging { opacity: .5; }
.v-layer.drag-over { border-color: var(--gold); box-shadow: inset 0 2px 0 var(--gold); }
.v-layer-grip { cursor: grab; color: var(--text-muted); font-size: 12px; line-height: 1; flex: none; user-select: none; }
.v-layer svg { width: 17px; height: 17px; flex: none; color: var(--gold-700); }
.v-layer-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-layer-btn {
    width: 22px; height: 22px; flex: none; padding: 0;
    border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface);
    cursor: pointer; font-size: 9px; color: var(--text-soft); line-height: 1;
}
.v-layer-btn:hover { border-color: var(--gold); color: var(--gold-700); }

/* cesty (ruční kreslení) */
.v-paths, .v-paths-hit { position: absolute; left: 0; top: 0; overflow: visible; z-index: 6; }
.v-paths-hit { z-index: 7; pointer-events: none; }
.v-paths-hit path { pointer-events: stroke; }
.v-paths { pointer-events: none; }
.v-paths-hit path { cursor: pointer; }
.v-path-handles { position: absolute; inset: 0; pointer-events: none; z-index: 40; }
.v-path-handle, .v-path-dot {
    position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px;
    border-radius: 50%; pointer-events: auto;
}
.v-path-handle { background: #fff; border: 2px solid var(--ink); cursor: grab; }
.v-path-dot { background: var(--gold); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--gold-700); pointer-events: none; }
#venue.is-drawing .rd-site { cursor: crosshair; }
#venue.is-drawing .rd-obj { pointer-events: none; }

/* modal neuložených změn */
.rd-modal {
    display: none;
    position: fixed; inset: 0; z-index: 3000;
    background: rgba(20,18,10,.5);
    align-items: center; justify-content: center; padding: 20px;
}
.rd-modal.is-open { display: flex; }
.rd-modal-card {
    background: var(--surface); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg); padding: 28px; max-width: 400px; width: 100%;
    animation: rise .3s var(--ease) both;
}
.rd-modal-card h3 { font-size: 18px; margin-bottom: 8px; }
.rd-modal-card p { color: var(--text-soft); font-size: 14px; line-height: 1.5; margin: 0 0 20px; }
.rd-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.rd-modal-actions .btn { flex: 1; min-width: 90px; }

/* otvory ve stěnách + kóty */
.rd-openings, .rd-koty { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; z-index: 5; }
.rd-open-handles { position: absolute; inset: 0; pointer-events: none; z-index: 6; }
.rd-open-handle { position: absolute; pointer-events: auto; cursor: grab; border-radius: 4px; }
.rd-open-handle:hover { background: rgba(196,167,89,.18); }
.rd-open-handle.is-selected { background: rgba(196,167,89,.30); outline: 1px solid var(--gold); }
.rd-open-handle:active { cursor: grabbing; }
.rd-shape-ico svg { width: 30px; height: 26px; color: var(--ink); }
#rdKoty.is-on { background: var(--ink); color: var(--gold); border-color: var(--ink); }

/* fullscreen designéru */
.rd-tools-toggle { display: none; }
.rd-tools-ov { display: none; }
body.rd-fs-lock { overflow: hidden; }
.rd.is-fs {
    position: fixed; inset: 0; z-index: 2000; background: var(--surface);
    display: flex; flex-direction: column; gap: 0;
}
.rd.is-fs .rd-tools-toggle { display: inline-flex; }
.rd.is-fs .rd-stage-wrap {
    flex: 1; min-height: 0; border: none; border-radius: 0; box-shadow: none;
    display: flex; flex-direction: column;
}
.rd.is-fs .rd-stage-scroll { flex: 1; max-height: none; }
.rd.is-fs .rd-tools {
    position: fixed; top: 0; left: 0; height: 100dvh; width: 90vw; max-width: 340px;
    transform: translateX(-100%); transition: transform .3s var(--ease);
    z-index: 2100; overflow-y: auto; border-radius: 0; box-shadow: 0 0 40px rgba(0,0,0,.2);
}
.rd.is-fs.tools-open .rd-tools { transform: none; }
.rd.is-fs .rd-tools-ov { position: fixed; inset: 0; background: rgba(20,18,10,.45); z-index: 2050; }
.rd.is-fs.tools-open .rd-tools-ov { display: block; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1000px) {
    .cards { grid-template-columns: repeat(2, 1fr); }
    .lp-features { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
    .lp-features { grid-template-columns: 1fr; }
    .lp-plans { grid-template-columns: 1fr; }
    .license-row { grid-template-columns: 1fr 1fr; }
    .lp-foot { flex-direction: column; gap: 8px; }
    .lp-nav { flex-wrap: wrap; gap: 12px; }
    .lp-hero { padding: 40px 20px 30px; }

    /* Boční menu → výsuvný drawer */
    .sidebar {
        position: fixed; top: 0; left: 0; height: 100dvh; width: 82vw; max-width: 300px;
        transform: translateX(-100%);
        transition: transform .3s var(--ease);
        z-index: 70; overflow-y: auto;
        box-shadow: 0 0 40px rgba(0,0,0,.18);
    }
    body.nav-open .sidebar { transform: none; }
    .nav-overlay {
        display: block;
        position: fixed; inset: 0; background: rgba(20,18,10,.45);
        opacity: 0; pointer-events: none; transition: opacity .3s var(--ease); z-index: 65;
    }
    body.nav-open .nav-overlay { opacity: 1; pointer-events: auto; }
    .content { width: 100%; min-width: 0; }

    .hamburger { display: inline-grid; }
    input, select, textarea { font-size: 16px !important; } /* zabrání zoomu na iOS */
    .topbar { padding: 16px 16px 4px; flex-wrap: wrap; gap: 12px; }
    .topbar h1 { font-size: 20px; }
    .page { padding: 16px 16px 32px; }
    .flash { margin-left: 16px; margin-right: 16px; }

    .form-grid { grid-template-columns: 1fr; }
    .grid-2 { grid-template-columns: 1fr; }
    .cards, .cards-2 { grid-template-columns: 1fr 1fr; gap: 12px; }
    .stat-value { font-size: 26px; }

    .section-head { flex-wrap: wrap; gap: 12px; }
    .section-head .btn, .section-head form { width: 100%; }
    .search input { width: 100%; max-width: none; }

    .table { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
    .cell-actions { white-space: nowrap; }
    .cell-actions .btn, .cell-actions form { margin: 2px; }

    .ws-banner { margin: 14px 16px 0; flex-direction: column; align-items: flex-start; }
    .ws-banner .btn { width: 100%; }
    .detail-grid { grid-template-columns: 1fr; }

    .form-actions { flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; }

    .rd { grid-template-columns: 1fr; }
    .rd-tools { position: static; }
    .rd-stage-head { flex-wrap: wrap; gap: 8px; }
    .rd-stage-info { order: 3; flex: 1 1 100%; }
    .resume-chip { width: 100%; justify-content: center; }
}
@media (max-width: 420px) {
    .cards, .cards-2 { grid-template-columns: 1fr; }
}

/* ================================================================
   REDESIGN – flat světlý SaaS (Linear / Notion / Vercel / shadcn)
   Override vrstva: tokeny + komponenty. Funkční třídy beze změny.
   ================================================================ */
:root {
    --bg: #fafafa;  --bg-soft: #f0f0f2;  --surface: #ffffff; --surface-2: #ffffff;
    --line: #e5e5e7; --line-strong: #e5e5e7;
    --text: #18181b; --text-soft: #71717a; --text-muted: #a1a1aa;
    --ink: #18181b;  --ink-600: #27272a;
    --accent-g: #18181b; --accent-g-h: #3f3f46;
    --gold: #18181b; --gold-600: #18181b; --gold-700: #18181b; --gold-050: #f0f0f2;
    --primary: #18181b; --primary-600: #3f3f46; --primary-050: #f0f0f2; --accent: #18181b;
    --radius: 8px; --radius-sm: 6px; --radius-lg: 8px;
    --shadow-sm: none; --shadow: none; --shadow-lg: 0 8px 30px rgba(0,0,0,.06);
    --dur: .15s;
}
html, body { font-family: 'Inter', 'Geist', system-ui, sans-serif; font-size: 14px; background: var(--bg); color: var(--text); }
h1, h2, h3 { font-weight: 400; letter-spacing: -.02em; }
.topbar h1 { font-size: 26px; font-weight: 300; }
.section-head h2, .card-title { font-weight: 500; font-size: 15px; }

.rd-label, .stat-label, .nav-group-label, .ws-current-label, .table thead th {
    font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--text-soft);
}
.field > span { font-size: 13px; font-weight: 500; color: var(--text-soft); }

.card, .rd-tools, .rd-stage-wrap, .auth-card, .lp-feature, .lp-plan, .rd-modal-card {
    background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: none;
}
.auth-card { backdrop-filter: none; }
.card.stat:hover, .lp-feature:hover, .lp-plan:hover { transform: none; box-shadow: none; }
.stat-value { background: none; -webkit-text-fill-color: currentColor; color: var(--text); font-weight: 300; font-size: 32px; }
/* Admin přepnutý na cizí účet — lišta dole */
.imp-bar { position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 900; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 32px); padding: 8px 8px 8px 16px; background: #b91c1c; color: #fff; border-radius: 999px; box-shadow: 0 8px 24px rgba(0,0,0,.25); font-size: 13px; }
.imp-bar b { font-weight: 600; }
.imp-bar .btn { background: #fff; color: #b91c1c; border-color: #fff; border-radius: 999px; white-space: nowrap; }
@media print { .imp-bar { display: none; } }
/* Přehled: úsporné dlaždice — číslo vlevo, popisek vpravo */
.cards-compact { gap: 10px; margin-bottom: 16px; }
.cards-compact .card.stat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 1px; align-items: center; padding: 10px 14px; }
.cards-compact .stat-value { grid-row: 1 / 3; font-size: 24px; line-height: 1; min-width: 22px; }
.cards-compact .stat-label { font-size: 11px; align-self: end; }
.cards-compact .stat small { font-size: 11.5px; align-self: start; margin: 0; }

.btn { border-radius: var(--radius-sm); font-weight: 500; font-size: 13px; padding: 8px 14px; box-shadow: none; }
.btn:active { transform: none; }
.btn-primary, .btn-gold { background: var(--accent-g); color: #fff; border-color: var(--accent-g); box-shadow: none; }
.btn-primary:hover, .btn-gold:hover { background: var(--accent-g-h); border-color: var(--accent-g-h); box-shadow: none; transform: none; }
.btn-ghost { background: transparent; border-color: var(--line); color: var(--text); }
.btn-ghost:hover { background: #f0f0f2; border-color: var(--line); color: var(--text); }
.btn-danger { background: transparent; border-color: var(--line); color: #b42318; }
.btn-danger:hover { background: #fef3f2; color: #b42318; border-color: #fecdca; box-shadow: none; }

.field input, .field select, .field textarea, .rd-select, .search input, .pricing-table input {
    background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm);
    font-size: 13px; padding: 8px 10px; box-shadow: none;
}
.field input::placeholder, .field textarea::placeholder { color: #a1a1aa; }
.field input:focus, .field select:focus, .field textarea:focus, .rd-select:focus, .search input:focus, .pricing-table input:focus {
    border-color: #a1a1aa; box-shadow: none; background: #fff; outline: none;
}

.sidebar { background: #f7f7f8; border-right: 1px solid var(--line); padding: 14px 10px; gap: 14px; }
.nav-link { font-size: 13px; padding: 7px 10px; border-radius: var(--radius-sm); color: var(--text-soft); gap: 10px; }
.nav-link .ic { width: 16px; height: 16px; stroke-width: 1.75; }
.nav-link:hover { background: #f0f0f2; color: var(--text); transform: none; }
.nav-link.is-active { background: #f0f0f2; color: var(--text); font-weight: 500; }
.sidebar-foot { background: transparent; border-top: 1px solid var(--line); border-radius: 0; padding: 10px 4px 0; }
.avatar, .avatar-ink { background: #18181b !important; color: #fff !important; }
.brand-version { background: #fff; border: 1px solid var(--line); color: var(--text-soft); }
.ws-current { background: #fff; color: var(--text); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.ws-current-ico { color: var(--text-soft); }
a.ws-current:hover, a.ws-current.is-active { box-shadow: none; background: #f0f0f2; }
.nav-badge { background: var(--accent-g); color: #fff; }
.count-pill { background: #f0f0f2; color: var(--text); }

.topbar { padding: 28px 36px 8px; }
.page { padding: 20px 36px 48px; }
.cards { gap: 12px; }
.card { padding: 20px; }
.table tbody td { font-size: 13px; padding: 11px 14px; }
.table tbody tr:hover { background: #fafafa; }
.badge { border-radius: 999px; font-weight: 500; background: #fff !important; color: var(--text) !important; border: 1px solid var(--line); }
.badge-planning::before, .badge-confirmed::before, .badge-in_progress::before, .badge-completed::before, .badge-cancelled::before {
    content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 6px; vertical-align: middle; background: #a1a1aa;
}
.badge-confirmed::before { background: #2563eb; }
.badge-in_progress::before { background: #d97706; }
.badge-completed::before { background: #16a34a; }
.badge-cancelled::before { background: #b42318; }
.flash { border-radius: var(--radius-sm); box-shadow: none; }
.resume-chip { background: #fff; color: var(--text); border: 1px solid var(--line); }
.resume-chip b { color: var(--accent-g); }
.resume-chip:hover { box-shadow: none; background: #f0f0f2; transform: none; }
.ws-banner { background: #fff; border: 1px solid var(--line); box-shadow: none; border-radius: var(--radius); }
.ws-badge { background: #f0f0f2; color: var(--text-soft); }

.rd-tabs { background: #f0f0f2; border-radius: var(--radius-sm); }
.rd-tab { font-weight: 500; font-size: 12px; }
.rd-tab.is-active { box-shadow: none; border: 1px solid var(--line); }
.rd-shape, .rd-decor-btn, .rd-side, .shp-preset, .v-layer, .v-bld-row { border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.rd-shape:hover, .rd-decor-btn:hover, .shp-preset:hover { transform: none; box-shadow: none; background: #f7f7f8; border-color: var(--line); color: var(--text); }
.rd-side.is-on, [data-shape-edit].is-on, #rdKoty.is-on { background: var(--accent-g); color: #fff; border-color: var(--accent-g); }
.rd-decor-btn .rd-btn-ico, .v-tag-ico { color: var(--text-soft); }
.v-layer.is-active { background: #f0f0f2; border-color: var(--line); }
.rd-stage-scroll { background: #fafafa; }
.rd-save-state.is-clean { color: var(--accent-g); }

body.auth, body.landing { background: #fafafa; }
.auth-orb, .lp-orb { display: none; }
.lp-hero h1 { font-weight: 300; }
.lp-plan-featured { border-color: var(--accent-g); box-shadow: none; }
.lp-plan-tag { background: var(--accent-g); color: #fff; box-shadow: none; }
.lp-feature-ico { background: #f0f0f2; color: var(--text); border-radius: var(--radius-sm); }
.choice input:checked + .choice-box { border-color: var(--accent-g); background: #fff; color: var(--text); box-shadow: inset 0 0 0 1px var(--accent-g); }

/* drawer zprava (formuláře) */
.drawer-ov { position: fixed; inset: 0; background: rgba(24,24,27,.25); z-index: 900; opacity: 0; pointer-events: none; transition: opacity .15s; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 460px; max-width: 100vw; background: #fff; border-left: 1px solid var(--line);
    box-shadow: -8px 0 30px rgba(0,0,0,.06); z-index: 901; display: flex; flex-direction: column; transform: translateX(100%); transition: transform .2s ease; }
body.drawer-open .drawer { transform: none; }
body.drawer-open .drawer-ov { opacity: 1; pointer-events: auto; }
.drawer-head { padding: 18px 22px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.drawer-head h2 { font-size: 18px; font-weight: 400; }
.drawer-body { padding: 22px; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 14px; }
.drawer-body .form-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
.drawer-foot { padding: 14px 22px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 8px; }
.drawer-x { border: 0; background: transparent; cursor: pointer; color: var(--text-soft); font-size: 18px; }

/* select s ikonou stavu vlevo */
.status-select { position: relative; }
.status-select .status-dot { position: absolute; left: 11px; top: 50%; width: 8px; height: 8px; border-radius: 50%; transform: translateY(-50%); background: #a1a1aa; pointer-events: none; }
.status-select select { padding-left: 28px; }

/* dodavatelé – filtr kategorií */
.sup-cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.sup-cat { padding: 5px 10px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; color: var(--text-soft); background: #fff; }
.sup-cat span { color: var(--text-muted); margin-left: 4px; }
.sup-cat:hover { background: #f0f0f2; color: var(--text); }
.sup-cat.is-active { background: #18181b; border-color: #18181b; color: #fff; }
.sup-cat.is-active span { color: #a1a1aa; }
.link-plain { color: var(--text); text-decoration: none; }
.link-plain:hover { text-decoration: underline; }

/* Fotky uživatelů */
.avatar.has-photo { padding: 0; overflow: hidden; background: #f0f0f2 !important; }
.avatar.has-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar-sm { width: 28px; height: 28px; font-size: 11px; }
.avatar-lg { width: 64px; height: 64px; font-size: 20px; }
.user-cell { display: inline-flex; align-items: center; gap: 10px; }
.photo-row { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.photo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.photo-actions label.btn { cursor: pointer; }
.photo-actions .muted { color: #71717a; font-size: 12px; width: 100%; }
.cell-actions label.btn { cursor: pointer; }

/* Odpočet do svatby */
.cell-date { white-space: nowrap; }
.countdown { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 18px; }
.cd-far   { background: #f0f0f2; color: #18181b; }
.cd-near  { background: #fef3c7; color: #92400e; }
.cd-soon  { background: #fee2e2; color: #b91c1c; }
.cd-today { background: #18181b; color: #fff; }
.cd-past  { background: transparent; color: #a1a1aa; font-weight: 500; }

/* Rozestupy ve formulářích (pole pod sebou) */
form > .field + .field,
form > .field + .form-grid,
form > .form-grid + .field,
form > .form-grid + .form-grid { margin-top: 16px; }
.form-card .card-title { margin-bottom: 18px; }
.photo-row + form { margin-top: 0; }
.head-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Šablony */
.tpl-kinds { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 24px; }
.tpl-kind { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid #e5e5e7; border-radius: 8px; background: #fff; color: #18181b; text-decoration: none; }
.tpl-kind:hover { border-color: #a1a1aa; }
.tpl-kind.is-active { border-color: #18181b; box-shadow: inset 0 0 0 1px #18181b; }
.tpl-kind.is-disabled { background: #fafafa; color: #a1a1aa; }
.tpl-kind strong { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.tpl-kind small { font-size: 12px; color: #71717a; }
.tpl-soon { font-size: 11px; font-weight: 500; padding: 1px 7px; border-radius: 999px; background: #f0f0f2; color: #71717a; }
.tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.tpl-card { display: flex; flex-direction: column; gap: 12px; padding: 0 !important; overflow: hidden; }
.tpl-thumb { height: 120px; display: grid; place-items: center; background: repeating-linear-gradient(45deg, #f7f7f8, #f7f7f8 10px, #f0f0f2 10px, #f0f0f2 20px); border-bottom: 1px solid #e5e5e7; }
.tpl-thumb span { font-size: 12px; color: #71717a; background: #fff; padding: 3px 10px; border-radius: 999px; border: 1px solid #e5e5e7; }
.tpl-body { padding: 0 16px; display: flex; flex-direction: column; gap: 6px; }
.tpl-body p { margin: 0; font-size: 13px; color: #71717a; }
.tpl-secs { display: flex; flex-wrap: wrap; gap: 4px; }
.tpl-card .cell-actions { padding: 0 16px 16px; margin-top: auto; justify-content: flex-start; }
.tpl-check-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tpl-check { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border: 1px solid #e5e5e7; border-radius: 6px; cursor: pointer; }
.tpl-check input { margin-top: 2px; width: auto; }
.tpl-check span { display: flex; flex-direction: column; font-size: 13px; color: #18181b !important; font-weight: 400 !important; }
.tpl-check small { font-size: 12px; color: #71717a; }
.tpl-check-inline { border: 0; padding: 0; margin-top: 16px; }
form > .field + .tpl-check-inline { margin-top: 16px; }
@media (max-width: 640px) { .tpl-check-list { grid-template-columns: 1fr; } }

/* Ceník – 3 licence */
.lp-plans.lp-plans-3 { grid-template-columns: repeat(3, 1fr); max-width: 1100px; }
@media (max-width: 960px) { .lp-plans.lp-plans-3 { grid-template-columns: 1fr; max-width: 480px; } }

/* Matice licence × modul (admin) */
.lic-matrix td, .lic-matrix th { text-align: center; }
.lic-matrix td:first-child, .lic-matrix th:first-child { text-align: left; }
.lic-matrix td small { display: block; color: #71717a; font-size: 12px; }
.lic-matrix input[type=checkbox] { width: 16px; height: 16px; accent-color: #18181b; }

/* Uživatelé – stromové seskupení */
.table tr.row-group td { background: #f7f7f8; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; padding-top: 10px; padding-bottom: 10px; }
.table tr.row-parent td { border-top: 1px solid #e5e5e7; }
.table tr.row-child td { background: #fcfcfd; }
.table tr.row-child td:first-child { padding-left: 34px; }
.tree-line { width: 14px; height: 18px; margin-top: -10px; border-left: 1px solid #d4d4d8; border-bottom: 1px solid #d4d4d8; border-bottom-left-radius: 4px; flex: none; }
.user-name { display: flex; flex-direction: column; line-height: 1.25; }
.user-name small { font-size: 12px; color: #71717a; font-weight: 400; }

/* Hosté */
.g-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-stats .stat small { font-size: 12px; margin-top: 4px; }
.g-yes { color: #16a34a; }
.g-head { gap: 12px; flex-wrap: wrap; }
.sup-sep { width: 1px; align-self: stretch; background: #e5e5e7; margin: 0 4px; }
.rsvp-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: middle; flex: none; }
.rsvp-invited { background: #a1a1aa; }
.rsvp-yes     { background: #16a34a; }
.rsvp-maybe   { background: #f59e0b; }
.rsvp-no      { background: #dc2626; }
.g-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: start; }
.g-side-panel { display: flex; flex-direction: column; gap: 16px; }
.g-side-panel .card-title { font-size: 14px; margin-bottom: 12px !important; }
.g-list { padding: 0 !important; overflow-x: auto; }
.g-table td { vertical-align: middle; }
.g-rsvp { display: inline-flex; align-items: center; }
.g-rsvp select { border: 1px solid transparent; background: transparent; padding: 4px 6px; border-radius: 6px; font: inherit; font-size: 13px; color: #18181b; cursor: pointer; }
.g-rsvp select:hover { border-color: #e5e5e7; background: #fff; }
.g-side { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: #f0f0f2; color: #3f3f46; white-space: nowrap; }
.g-side-bride { background: #fdf2f8; color: #9d174d; }
.g-side-groom { background: #eff6ff; color: #1e40af; }
.g-diet { color: #b45309 !important; }
.g-contact { display: table-cell; font-size: 13px; }
.g-contact small { display: block; color: #71717a; }
.g-meals { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.g-meals li { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 6px 0; border-bottom: 1px solid #f0f0f2; }
.g-meals li span { flex: 1; }
.g-meals form { margin: 0; }
.g-x { border: 0; background: none; color: #a1a1aa; cursor: pointer; font-size: 16px; line-height: 1; padding: 0 2px; }
.g-x:hover { color: #dc2626; }
.g-meal-add { display: flex; gap: 6px; }
.g-meal-add input { flex: 1; min-width: 0; border: 1px solid #e5e5e7; border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px; }
.g-small { font-size: 12px; margin: 0 0 10px; }
.g-bulk { margin-bottom: 16px; }
.g-bulk-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1100px) { .g-layout { grid-template-columns: 1fr; } .g-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .g-bulk-grid { grid-template-columns: 1fr; } }
.g-gdpr { margin-bottom: 16px; }

/* Zasedací pořádek */
.st-head { align-items: center; }
.st-summary { font-size: 14px; color: #71717a; }
.st-summary strong { color: #18181b; font-size: 18px; }
.st { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 16px; align-items: start; }
.st-pool { position: sticky; top: 16px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; padding: 14px !important; }
.st-pool-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.st-pool-head input { border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; }
.st-pool-list { overflow-y: auto; display: flex; flex-direction: column; gap: 6px; min-height: 60px; }
.st-note { font-size: 12px; color: #a1a1aa; margin: 10px 0 0; }
.st-empty { font-size: 12px; color: #a1a1aa; margin: 6px 0; text-align: center; }
.st-chip { position: relative; display: flex; flex-direction: column; padding: 6px 26px 6px 10px; border: 1px solid #e5e5e7; border-left: 3px solid #a1a1aa; border-radius: 6px; background: #fff; cursor: grab; user-select: none; }
.st-chip:hover { border-color: #a1a1aa; }
.st-chip.is-picked { box-shadow: 0 0 0 2px #18181b; }
.st-chip.is-drag { opacity: .4; }
.st-side-bride { border-left-color: #db2777; }
.st-side-groom { border-left-color: #2563eb; }
.st-chip-name { font-size: 13px; font-weight: 500; }
.st-chip small { font-size: 11px; color: #71717a; }
.st-diet { color: #d97706; font-style: normal; font-size: 9px; vertical-align: middle; }
.st-x { position: absolute; top: 4px; right: 4px; border: 0; background: none; color: #a1a1aa; font-size: 15px; cursor: pointer; line-height: 1; padding: 2px 4px; }
.st-x:hover { color: #dc2626; }
.st-room + .st-room { margin-top: 20px; }
.st-room h3 { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin: 0 0 10px; }
.st-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.st-table { padding: 12px !important; display: flex; flex-direction: column; gap: 8px; min-height: 130px; transition: box-shadow .12s, border-color .12s; }
.st-table-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.st-table-head strong { font-size: 14px; }
.st-cap { font-size: 12px; color: #71717a; font-variant-numeric: tabular-nums; }
.st-bar { height: 4px; background: #f0f0f2; border-radius: 4px; overflow: hidden; }
.st-bar i { display: block; height: 100%; background: #18181b; }
.st-table.is-full .st-bar i { background: #16a34a; }
.st-table.is-over { border-color: #fca5a5; }
.st-table.is-over .st-bar i { background: #dc2626; }
.st-table-list { display: flex; flex-direction: column; gap: 5px; }
.st-warn { margin: 0; font-size: 12px; color: #dc2626; }
.is-over-drop { border-color: #18181b !important; box-shadow: 0 0 0 2px #18181b inset; background: #fafafa; }
@media (max-width: 900px) { .st { grid-template-columns: 1fr; } .st-pool { position: static; max-height: 50vh; } }

/* Úkoly */
.tk-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tk-red { color: #dc2626 !important; }
.tk-progress { margin-top: 8px; }
.tk-head { flex-wrap: wrap; gap: 12px; }
.tk-who { margin: 0; }
.tk-head .head-actions form { margin: 0; }
.tk-quick { display: flex; gap: 8px; padding: 10px !important; margin-bottom: 16px; flex-wrap: wrap; }
.tk-quick input[type=text] { flex: 1; min-width: 200px; }
.tk-quick input, .tk-quick select { border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; background: #fff; }
.tk-group { margin-bottom: 14px; }
.tk-group summary { cursor: pointer; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin-bottom: 8px; list-style: none; display: flex; align-items: center; gap: 6px; }
.tk-group summary::-webkit-details-marker { display: none; }
.tk-group summary::before { content: '▸'; transition: transform .15s; }
.tk-group[open] summary::before { transform: rotate(90deg); }
.tk-overdue summary { color: #dc2626; }
.tk-list { padding: 0 !important; }
.tk-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid #f0f0f2; color: inherit; text-decoration: none; }
.tk-row:last-child { border-bottom: 0; }
.tk-row form { margin: 0; }
.tk-check { width: 18px; height: 18px; border: 1.5px solid #a1a1aa; border-radius: 5px; background: #fff; cursor: pointer; display: grid; place-items: center; font-size: 12px; line-height: 1; color: #fff; padding: 0; }
.tk-check:hover { border-color: #18181b; }
.tk-row.is-done .tk-check { background: #16a34a; border-color: #16a34a; }
.tk-row.is-done .tk-title { color: #a1a1aa; text-decoration: line-through; }
.tk-title { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 14px; color: #18181b; text-decoration: none; }
.tk-title:hover { text-decoration: underline; }
.tk-title small { font-size: 12px; color: #71717a; }
.tk-due { font-size: 12px; color: #71717a; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tk-overdue .tk-due { color: #dc2626; }
.tk-tag { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: #f0f0f2; color: #71717a; }
.tk-none { background: #f0f0f2 !important; color: #a1a1aa !important; }
.tk-dash { margin-bottom: 24px; }
.tk-dash .tk-row:hover { background: #fafafa; }
/* priorita úkolu: světlé zbarvení řádku + štítek */
.tk-row.tk-p-high { background: #fef2f2; box-shadow: inset 3px 0 0 #f87171; }
.tk-row.tk-p-mid { background: #fffbeb; box-shadow: inset 3px 0 0 #fbbf24; }
.tk-row.tk-p-low { background: #f0fdf4; box-shadow: inset 3px 0 0 #4ade80; }
.tk-dash .tk-row.tk-p-high:hover { background: #fee2e2; }
.tk-dash .tk-row.tk-p-mid:hover { background: #fef3c7; }
.tk-dash .tk-row.tk-p-low:hover { background: #dcfce7; }
.tk-prio { font-size: 11px; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.tk-prio-high { background: #fee2e2; color: #b91c1c; }
.tk-prio-mid { background: #fef3c7; color: #a16207; }
.tk-prio-low { background: #dcfce7; color: #15803d; }
/* Šablony úkolů */
.tt-intro { margin: 0; max-width: 640px; font-size: 13px; }
.tt-card { padding: 0 !important; }
.tt-row { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-bottom: 1px solid #f0f0f2; flex-wrap: wrap; }
.tt-add { background: #fafafa; }
.tt-row input, .tt-row select { border: 1px solid #e5e5e7; border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px; background: #fff; }
.tt-title { flex: 1; min-width: 220px; }
.tt-num { width: 64px; }
.tt-sfx { font-size: 13px; color: #71717a; }
@media (max-width: 900px) { .tk-stats { grid-template-columns: repeat(2, 1fr); } }

/* Dodavatelé svatby */
.ws-contacted { background: #a1a1aa; }
.ws-offer     { background: #f59e0b; }
.ws-confirmed { background: #16a34a; }
.ws-cancelled { background: #dc2626; }
.ws-missing { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 12px; font-size: 13px; color: #71717a; }
.ws-miss { padding: 2px 9px; border-radius: 999px; border: 1px dashed #d4d4d8; color: #3f3f46; font-size: 12px; }
.ws-add select { flex: 1; min-width: 240px; }
.ws-table td { vertical-align: middle; }

/* Branding agentury */
.br-grid { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 24px; }
.br-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.br-logo { height: 120px; border: 1px dashed #d4d4d8; border-radius: 8px; display: grid; place-items: center; padding: 12px; background: repeating-conic-gradient(#fafafa 0 25%, #fff 0 50%) 0 0 / 16px 16px; }
.br-logo img { max-width: 100%; max-height: 96px; object-fit: contain; }
.br-logo-empty { font-size: 13px; color: #a1a1aa; }
.br-colors { display: flex; flex-direction: column; gap: 8px; }
.br-color { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e5e5e7; border-radius: 8px; cursor: pointer; }
.br-color input[type=color] { width: 36px; height: 36px; border: 0; padding: 0; background: none; cursor: pointer; flex: none; }
.br-color input[type=color]::-webkit-color-swatch-wrapper { padding: 0; }
.br-color input[type=color]::-webkit-color-swatch { border: 1px solid #e5e5e7; border-radius: 6px; }
.br-color span { display: flex; flex-direction: column; font-size: 13px; }
.br-color small { color: #71717a; font-size: 12px; }
.br-color code { font-size: 11px; color: #a1a1aa; }
.br-palette div { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.br-sw { width: 28px; height: 28px; border-radius: 6px; border: 1px solid rgba(0,0,0,.1); cursor: pointer; padding: 0; }
.br-sw:hover { transform: scale(1.1); }
.br-preview { --bp: #18181b; --ba: #a1a1aa; border: 1px solid #e5e5e7; border-radius: 8px; padding: 18px 20px; background: #fff; font-size: 12px; color: #3f3f46; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.br-pv-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; min-height: 24px; }
.br-pv-logo img { max-height: 24px; max-width: 110px; object-fit: contain; display: block; }
.br-pv-meta { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ba); }
.br-pv-title { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; color: var(--bp); }
.br-pv-line { height: 1px; background: var(--ba); margin: 10px 0 12px; opacity: .7; }
.br-pv-row { display: flex; gap: 12px; padding: 3px 0; }
.br-pv-row b { color: var(--bp); font-weight: 600; min-width: 38px; }
@media (max-width: 1100px) { .br-grid { grid-template-columns: 1fr; } }

/* Harmonogram */
.tl-quick input[type=time] { width: 110px; flex: none; }
.tl-quick input[name=place] { width: 160px; flex: none; }
.tl { padding: 8px 0 !important; }
.tl-row { position: relative; display: grid; grid-template-columns: 76px 20px minmax(0, 1fr) auto; align-items: start; gap: 10px; padding: 8px 16px; }
.tl-row::before { content: ''; position: absolute; left: 111px; top: 0; bottom: 0; width: 1px; background: #e5e5e7; }
.tl-row:first-child::before { top: 18px; }
.tl-row:last-child::before { bottom: calc(100% - 18px); }
.tl-time { text-align: right; font-variant-numeric: tabular-nums; padding-top: 1px; }
.tl-time strong { display: block; font-size: 15px; }
.tl-time small { font-size: 12px; color: #a1a1aa; }
.tl-dot { position: relative; z-index: 1; width: 11px; height: 11px; margin: 5px auto 0; border-radius: 50%; background: #fff; border: 2px solid #18181b; }
.tl-row.has-sup .tl-dot { border-color: #a1a1aa; }
.tl-body { display: flex; flex-direction: column; gap: 2px; color: inherit; text-decoration: none; padding: 2px 8px; margin: -2px -8px; border-radius: 6px; }
.tl-body:hover { background: #fafafa; }
.tl-body strong { font-size: 14px; font-weight: 500; }
.tl-meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; color: #71717a; }
.tl-sup { padding: 0 7px; border-radius: 999px; background: #f0f0f2; color: #3f3f46; }
.tl-note { font-size: 12px; color: #71717a; }
.tl-row form { margin: 0; }
.tl-midnight { margin: 6px 16px 2px 128px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #a1a1aa; }
@media (max-width: 640px) { .tl-row { grid-template-columns: 56px 16px minmax(0,1fr) auto; } .tl-row::before { left: 87px; } .tl-midnight { margin-left: 100px; } }

/* Rozpočet */
.bd-top { display: flex; flex-direction: column; gap: 16px; margin-bottom: 20px; }
.bd-total { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.bd-total-form { display: flex; align-items: center; gap: 8px; }
.bd-total-form input { width: 160px; font-size: 22px; font-weight: 300; border: 1px solid transparent; border-radius: 6px; padding: 2px 8px; text-align: right; background: transparent; color: #18181b; }
.bd-total-form input:hover, .bd-total-form input:focus { border-color: #e5e5e7; background: #fff; outline: none; }
.bd-total-form span { font-size: 18px; color: #71717a; }
.bd-figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.bd-figs div { display: flex; flex-direction: column; gap: 2px; }
.bd-figs strong { font-size: 20px; font-weight: 500; font-variant-numeric: tabular-nums; }
.bd-figs small { font-size: 12px; color: #71717a; }
.bd-bar { position: relative; height: 8px; border-radius: 8px; background: #f0f0f2; overflow: hidden; }
.bd-bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 8px; }
.bd-cost { background: #d4d4d8; }
.bd-cost.is-over { background: #fca5a5; }
.bd-paid { background: #16a34a; }
.bd-quick select { width: 180px; flex: none; }
.bd-quick input[name=planned] { width: 130px; flex: none; }
.bd-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bd-table tr.row-group td.num { color: #71717a; }
.bd-table tfoot td { font-weight: 600; border-top: 2px solid #e5e5e7; padding-top: 12px; }
.bd-pays li { align-items: flex-start; }
.bd-pays li span { display: flex; flex-direction: column; }
.bd-pays small { font-size: 11px; }
.bd-pays strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bd-pay-rows { display: flex; flex-direction: column; gap: 6px; }
.bd-pay-row { display: grid; grid-template-columns: 96px 1fr 132px 1.2fr 34px; gap: 6px; align-items: center; }
.bd-pay-head span { font-size: 11px; color: #a1a1aa; text-transform: uppercase; letter-spacing: .05em; }
.bd-pay-row input, .bd-pay-row select { min-width: 0; }
.bd-paid-cell { display: flex; align-items: center; gap: 6px; }
.bd-paid-cell input[type=checkbox] { width: auto; flex: none; }
.bd-del { display: flex; align-items: center; gap: 2px; font-size: 13px; color: #a1a1aa; cursor: pointer; }
.bd-del input { width: auto; }
@media (max-width: 900px) { .bd-figs { grid-template-columns: repeat(2, 1fr); } .bd-pay-row { grid-template-columns: 1fr 1fr; } .bd-pay-head { display: none; } }
/* platby v úzkém panelu: 2 řádky na platbu */
.bd-pay-row { grid-template-columns: 110px minmax(90px, 1fr) minmax(140px, 1fr); grid-template-areas: "kind amount due" "paid paid del"; padding: 8px; border: 1px solid #f0f0f2; border-radius: 8px; row-gap: 6px; }
.bd-pay-row > select { grid-area: kind; }
.bd-pay-row > input[type=text] { grid-area: amount; }
.bd-pay-row > .bd-due { grid-area: due; display: flex; flex-direction: column; gap: 0; }
.bd-pay-row > .bd-due small { display: none; }
.bd-pay-row > .bd-paid-cell { grid-area: paid; font-size: 13px; color: #3f3f46; }
.bd-pay-row > .bd-paid-cell input[type=date] { width: 150px; }
.bd-pay-row > .bd-del, .bd-pay-row > span { grid-area: del; justify-self: end; }
.bd-pay-row input[type=hidden] { display: none; }
@media (max-width: 900px) { .bd-pay-row { grid-template-columns: 1fr 1fr; grid-template-areas: "kind amount" "due due" "paid del"; } }
/* platby – popisky a datum úhrady jen po zaškrtnutí */
.bd-pay-row { padding-top: 22px; position: relative; }
.bd-pay-row::before { content: 'Typ'; position: absolute; top: 5px; left: 8px; font-size: 11px; color: #a1a1aa; }
.bd-pay-row > input[type=text]::placeholder { color: #a1a1aa; }
.bd-pay-row > .bd-due small { display: block; position: absolute; top: 5px; font-size: 11px; color: #a1a1aa; font-weight: 400; }
.bd-pay-row > .bd-due { position: static; }
.bd-pay-row::after { content: 'Částka'; position: absolute; top: 5px; left: calc(8px + 110px + 6px); font-size: 11px; color: #a1a1aa; }
.bd-paid-cell input[type=date], .bd-paid-on { display: none; }
.bd-paid-cell:has(input[type=checkbox]:checked) input[type=date],
.bd-paid-cell:has(input[type=checkbox]:checked) .bd-paid-on { display: inline-block; }
.bd-paid-cell:has(input[type=checkbox]:checked) { color: #16a34a; }
.bd-paid-on { color: #71717a; }
@media (max-width: 900px) { .bd-pay-row::after { left: calc(50% + 3px); } }

/* Exporty */
.ex-intro { font-size: 13px; margin: 0 0 16px; max-width: 720px; }
.ex-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.ex-card { display: flex; flex-direction: column; gap: 6px; padding: 18px !important; color: inherit; text-decoration: none; transition: border-color .12s; }
a.ex-card:hover { border-color: #a1a1aa; }
.ex-card.is-disabled { opacity: .5; }
.ex-ico { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; background: #f0f0f2; font-weight: 600; margin-bottom: 4px; }
.ex-card strong { font-size: 15px; font-weight: 600; }
.ex-card small { font-size: 13px; color: #71717a; line-height: 1.45; flex: 1; }
.ex-go { font-size: 12px; color: #18181b; margin-top: 6px; }

/* Kontakty svatby */
.ct-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.ct-card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 14px !important; }
.ct-card.is-key { border-color: #d4d4d8; box-shadow: inset 3px 0 0 #18181b; }
.ct-head { display: flex; align-items: center; gap: 10px; padding-right: 40px; }
.ct-head .avatar { width: 36px; height: 36px; font-size: 12px; }
.ct-body { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.ct-body small { color: #71717a; font-size: 12px; }
.ct-star { position: absolute; top: 10px; right: 30px; margin: 0; }
.ct-star button { border: 0; background: none; font-size: 17px; cursor: pointer; color: #a1a1aa; line-height: 1; padding: 2px; }
.is-key .ct-star button { color: #f59e0b; }
.ct-del { position: absolute; top: 10px; right: 8px; margin: 0; }

/* Vývoj – připomínky */
.whfb-btn { position: fixed; right: 18px; bottom: 18px; z-index: 900; display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 0; border-radius: 999px; background: #18181b; color: #fff; font: 500 13px Inter, sans-serif; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.whfb-btn:hover { background: #3f3f46; }
.whfb-picking, .whfb-picking * { cursor: crosshair !important; }
.whfb-hover { outline: 2px dashed #f59e0b !important; outline-offset: 2px; }
.whfb-picked, .whfb-found { outline: 3px solid #f59e0b !important; outline-offset: 3px; box-shadow: 0 0 0 9999px rgba(24,24,27,.12) !important; position: relative; z-index: 5; }
.whfb-hint { position: fixed; left: 50%; top: 14px; transform: translateX(-50%); z-index: 1001; background: #18181b; color: #fff; padding: 9px 14px; border-radius: 8px; font: 13px Inter, sans-serif; box-shadow: 0 4px 14px rgba(0,0,0,.2); display: flex; gap: 10px; align-items: center; }
.whfb-hint button { font: inherit; font-size: 12px; background: #3f3f46; color: #fff; border: 0; border-radius: 5px; padding: 3px 9px; cursor: pointer !important; }
.whfb-form { position: fixed; right: 18px; bottom: 66px; z-index: 1001; width: 360px; max-width: calc(100vw - 32px); background: #fff; border: 1px solid #e5e5e7; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.15); padding: 14px; display: flex; flex-direction: column; gap: 8px; font: 13px Inter, sans-serif; }
.whfb-form-head { display: flex; justify-content: space-between; align-items: center; }
.whfb-form-head button { border: 0; background: none; font-size: 18px; cursor: pointer; color: #a1a1aa; }
.whfb-where { font-size: 12px; color: #71717a; background: #fafafa; border-radius: 6px; padding: 6px 8px; }
.whfb-where em { font-style: normal; color: #18181b; }
.whfb-types { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; }
.whfb-types label { display: flex; gap: 4px; align-items: center; cursor: pointer; }
.whfb-form input[type=text], .whfb-form textarea { border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; width: 100%; resize: vertical; }
.whfb-actions { display: flex; gap: 6px; align-items: center; }
.whfb-actions [data-msg] { flex: 1; font-size: 12px; color: #b45309; }
.whfb-done p { color: #52525b; margin: 6px 0 10px; }
.whfb-banner { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 1001; background: #f59e0b; color: #18181b; padding: 8px 12px 8px 14px; border-radius: 8px; font: 500 13px Inter, sans-serif; display: flex; gap: 10px; align-items: center; box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.whfb-banner button { border: 0; background: rgba(0,0,0,.1); border-radius: 5px; cursor: pointer; font-size: 15px; line-height: 1; padding: 2px 7px; }
.dv-agencies { padding: 14px !important; margin-bottom: 18px; display: flex; flex-direction: column; gap: 10px; }
.dv-ag-head { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.dv-ag-head small { font-size: 12px; }
.dv-ag-list { display: flex; flex-wrap: wrap; gap: 6px; }
.dv-ag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid #e5e5e7; border-radius: 999px; font-size: 12px; color: #3f3f46; text-decoration: none; background: #fff; }
.dv-ag i { width: 7px; height: 7px; border-radius: 50%; background: #d4d4d8; }
.dv-ag.is-on i { background: #16a34a; }
.dv-ag.is-active { background: #18181b; border-color: #18181b; color: #fff; }
.dv-toggle { display: flex; align-items: center; gap: 12px; padding-top: 10px; border-top: 1px solid #f0f0f2; font-size: 13px; margin: 0; flex-wrap: wrap; }
.dv-new { margin-bottom: 16px; }
.dv-st-new { background: #2563eb; } .dv-st-progress { background: #f59e0b; } .dv-st-waiting { background: #a855f7; }
.dv-st-done { background: #16a34a; } .dv-st-rejected { background: #a1a1aa; }
.dv-type { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #f0f0f2; color: #3f3f46; white-space: nowrap; }
.dv-type-bug { background: #fee2e2; color: #b91c1c; } .dv-type-feature { background: #e0e7ff; color: #3730a3; } .dv-type-change { background: #fef3c7; color: #92400e; }
.dv-main { display: flex; flex-direction: column; gap: 12px; }
.dv-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 12px; }
.dv-body { font-size: 14px; line-height: 1.6; }
.dv-thread { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.dv-c { display: flex; gap: 10px; align-items: flex-start; }
.dv-c > div { flex: 1; background: #fff; border: 1px solid #e5e5e7; border-radius: 8px; padding: 10px 12px; }
.dv-c.is-dev > div { background: #fafafa; }
.dv-c-head { font-size: 12px; margin-bottom: 4px; }
.dv-c-body { font-size: 14px; line-height: 1.55; }
.dv-sys { font-size: 12px; color: #a1a1aa; text-align: center; }
.dv-reply textarea { width: 100%; border: 1px solid #e5e5e7; border-radius: 6px; padding: 8px 10px; font: inherit; resize: vertical; }
.dv-reply .form-actions { margin-top: 8px; }
.dv-typeform { margin-top: 10px; }
.dv-typeform select { border: 1px solid #e5e5e7; border-radius: 6px; padding: 5px 8px; font: inherit; font-size: 13px; }
.dv-ctx li span { color: #71717a; flex: 0 0 60px; }
.dv-ctx li strong { font-weight: 500; flex: 1; word-break: break-word; }
.dv-tech { margin-top: 10px; font-size: 11px; }
.dv-tech code { display: block; word-break: break-all; color: #71717a; margin-top: 4px; }
/* Vývoj – novinky */
.dv-unread td { background: #fffbeb; }
.dv-unread .tk-title { font-weight: 600; }
.dv-news { display: flex; align-items: baseline; gap: 8px; font-size: 12px; color: #92400e; margin-bottom: 3px; }
.dv-news em { font-style: normal; color: #78716c; }
.dv-new-pill { flex: none; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 1px 7px; border-radius: 999px; background: #f59e0b; color: #fff; }
.whfb-news { position: fixed; right: 18px; bottom: 62px; z-index: 900; padding: 6px 12px; border-radius: 999px; background: #f59e0b; color: #18181b; font: 600 12px Inter, sans-serif; text-decoration: none; box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.whfb-news:hover { background: #fbbf24; }
.whfb-form { bottom: 104px; }

/* Nástěnka svatby */
.ov-hero { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px !important; margin-bottom: 16px; flex-wrap: wrap; }
.ov-hero-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ov-names { font-size: 26px; font-weight: 300; margin: 0; letter-spacing: -.01em; }
.ov-meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 13px; color: #71717a; }
.ov-count { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 120px; padding: 12px 18px; border-radius: 10px; background: #f7f7f8; margin-right: 140px; }
.ov-count strong { font-size: 34px; font-weight: 300; line-height: 1; }
.ov-count span { font-size: 12px; color: #71717a; margin-top: 4px; }
.ov-count.cd-near { background: #fef3c7; } .ov-count.cd-soon { background: #fee2e2; } .ov-count.cd-today { background: #18181b; color: #fff; }
.ov-count.cd-today span { color: #d4d4d8; }
.ov-edit { position: absolute; top: 16px; right: 16px; }
.ov-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ov-card { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px !important; }
.ov-card { min-width: 0; }
.ov-wide { grid-row: span 2; }
.ov-head { display: flex; justify-content: space-between; align-items: baseline; }
.ov-head h3 { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; }
.ov-head a { font-size: 12px; color: #18181b; text-decoration: none; }
.ov-head a:hover { text-decoration: underline; }
.ov-nums { display: flex; gap: 22px; flex-wrap: wrap; }
.ov-nums div { display: flex; flex-direction: column; }
.ov-nums b { font-size: 22px; font-weight: 500; font-variant-numeric: tabular-nums; line-height: 1.15; }
.ov-nums span { font-size: 12px; color: #71717a; }
.ov-stack { display: flex; height: 8px; border-radius: 8px; overflow: hidden; gap: 2px; background: #f0f0f2; }
.ov-stack i { display: block; }
.ov-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ov-list li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #f0f0f2; font-size: 13px; }
.ov-li-main { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ov-li-side { font-size: 12px; color: #71717a; white-space: nowrap; }
.ov-list strong { font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ov-tl b { width: 42px; flex: none; font-variant-numeric: tabular-nums; }
.ov-empty { margin: 0; font-size: 13px; color: #71717a; }
.ov-empty a { color: #18181b; }
.ov-foot { margin: 0; font-size: 12px; color: #71717a; }
.ov-missing { margin: 0; }
.ov-notes { margin: 0; font-size: 13px; line-height: 1.55; color: #3f3f46; }
@media (max-width: 1200px) { .ov-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ov-grid { grid-template-columns: minmax(0, 1fr); } .ov-wide { grid-row: auto; } .ov-count { margin-right: 0; } .ov-edit { position: static; } }

/* Jednotné ikony */
.ico { width: 15px; height: 15px; flex: none; vertical-align: -2.5px; color: #a1a1aa; }
.ico-sm { width: 13px; height: 13px; vertical-align: -2px; }
.ico-fill { fill: currentColor; }
.btn .ico, .whfb-btn .ico { color: currentColor; }
.ov-meta span, .tl-meta span, .ct-body a { display: inline-flex; align-items: center; gap: 6px; }
.ct-star .ico { width: 17px; height: 17px; color: inherit; }
.tk-title small .ico { vertical-align: -2px; }

/* Dokumenty */
.dc-upload { display: flex; flex-direction: column; gap: 10px; padding: 12px !important; margin-bottom: 16px; transition: border-color .12s, background .12s; }
.dc-upload.is-drag { border-color: #18181b; background: #fafafa; }
.dc-drop { position: relative; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 76px; border: 1.5px dashed #d4d4d8; border-radius: 8px; cursor: pointer; text-align: center; padding: 10px; }
.dc-drop:hover { border-color: #a1a1aa; }
.dc-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dc-drop-txt { font-size: 13px; color: #3f3f46; }
.dc-drop-txt small { display: block; font-size: 12px; color: #a1a1aa; margin-top: 2px; }
.dc-picked { font-size: 13px; font-weight: 500; }
.dc-upload.has-files .dc-drop { border-color: #16a34a; }
.dc-upload.has-files .dc-drop-txt { display: none; }
.dc-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.dc-meta select, .dc-meta input { border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; background: #fff; }
.dc-meta input { flex: 1; min-width: 200px; }
.dc-table td { vertical-align: middle; }
.dc-ico-cell { width: 44px; }
.dc-ico { display: grid; place-items: center; width: 34px; height: 40px; border-radius: 5px; font-size: 9px; font-weight: 700; letter-spacing: .04em; background: #f0f0f2; color: #52525b; }
.dc-pdf { background: #fee2e2; color: #b91c1c; } .dc-doc { background: #dbeafe; color: #1d4ed8; } .dc-xls { background: #dcfce7; color: #15803d; }
.dc-ppt { background: #ffedd5; color: #c2410c; } .dc-img { background: #f3e8ff; color: #7e22ce; }
.dc-note { display: block; font-size: 12px; margin-top: 2px; }
.dc-vis { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #f0f0f2; color: #3f3f46; white-space: nowrap; }
.dc-vis-team { background: #fafafa; color: #71717a; border: 1px solid #e5e5e7; }
.dc-vis-client, .dc-vis-all { background: #ecfdf5; color: #047857; }
.dc-vis-supplier { background: #eff6ff; color: #1d4ed8; }

/* Obrázek svatby */
.wcover { --h: 220; position: relative; display: inline-grid; place-items: center; flex: none; width: 60px; height: 40px; border-radius: 6px; overflow: hidden;
  background: linear-gradient(135deg, hsl(var(--h) 45% 90%), hsl(calc(var(--h) + 30) 40% 80%)); color: hsl(var(--h) 35% 30%); }
.wcover::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 80% 15%, rgba(255,255,255,.55), transparent 55%); }
.wcover b { position: relative; z-index: 1; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 15px; letter-spacing: .02em; }
.wcover.has-img { background: #f0f0f2; }
.wcover.has-img::after { display: none; }
.wcover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wl-couple { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.wl-couple:hover strong { text-decoration: underline; }
.wcover-lg { width: 150px; height: 100px; border-radius: 8px; }
.wcover-lg b { font-size: 30px; }
.wc-row { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.wc-field .photo-actions { flex-direction: column; align-items: flex-start; flex: 1; min-width: 200px; }
.wcover-hero { width: 132px; height: 88px; border-radius: 10px; }
.wcover-hero b { font-size: 28px; }
.ov-hero { justify-content: flex-start; }
.ov-hero-main { flex: 1; }

/* Log aktivit */
.al-filter select { max-width: 220px; }
.al-filter input[type=date] { width: 150px; flex: none; }
.al-table td { vertical-align: middle; }
.al-time { width: 56px; font-variant-numeric: tabular-nums; color: #71717a; font-size: 13px; }
.al-mod { display: inline-block; font-size: 11px; padding: 1px 8px; border-radius: 999px; background: #f0f0f2; color: #3f3f46; margin-right: 4px; }
.al-pager { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 14px; font-size: 13px; }

/* Lišta přihlášeného */
.idbar { display: flex; align-items: center; gap: 8px; padding: 9px 34px; border-bottom: 1px solid #e5e5e7; background: #fff; font-size: 12.5px; color: #3f3f46; flex-wrap: wrap; }
.idbar-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #a1a1aa; }
.idbar img { max-height: 18px; max-width: 80px; object-fit: contain; }
.idbar strong { font-weight: 600; color: #18181b; }
.idbar-sep { color: #d4d4d8; }
.idbar-role { font-size: 11px; padding: 1px 8px; border-radius: 999px; background: #f0f0f2; color: #52525b; }
@media (max-width: 760px) { .idbar { padding: 8px 16px 8px 56px; } }
.badge-inquiry::before, .badge-active::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 6px; vertical-align: middle; background: #a1a1aa; }
.badge-active::before { background: #2563eb; }
.badge-inquiry { border-style: dashed !important; }
.wst-inquiry { background: #a1a1aa; } .wst-active { background: #2563eb; } .wst-completed { background: #16a34a; } .wst-cancelled { background: #b42318; }

/* Přehled – kroky svateb */
.ms-table th.ms-col { text-align: center; width: 72px; padding: 8px 4px; vertical-align: bottom; }
.ms-table th.ms-col span { display: block; font-size: 10px; line-height: 1.25; text-transform: none; letter-spacing: 0; white-space: normal; }
.ms-contract { display: inline-block; margin-top: 3px; font-style: normal; font-size: 9px; padding: 0 5px; border-radius: 999px; background: #18181b; color: #fff; text-transform: uppercase; letter-spacing: .04em; }
.ms-table td.ms-col { text-align: center; padding: 6px 4px; }
.ms-table td.ms-col form { display: inline-block; margin: 0; }
.ms-check { width: 20px; height: 20px; }
.ms-check.is-on { background: #16a34a; border-color: #16a34a; }
.ms-inquiry td { background: #fcfcfd; }
.ms-inquiry .wl-couple strong { font-weight: 500; }
.uc-cats { display: flex; flex-direction: column; gap: 6px; }

/* Přístupy uživatele */
.ua-card { padding: 0 !important; }
.ua-help { padding: 14px 16px; font-size: 13px; color: #52525b; border-bottom: 1px solid #f0f0f2; line-height: 1.5; }
.ua-presets { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 8px; font-size: 12px; color: #71717a; }
.ua-table th { font-size: 10px !important; white-space: normal; vertical-align: bottom; }
.ua-table td { vertical-align: middle; padding: 8px 6px !important; }
.ua-table tr:not(.is-on) td { opacity: .55; }
.ua-table tr:not(.is-on) td:first-child { opacity: 1; }
.ua-w { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.ua-w input { width: 16px; height: 16px; accent-color: #18181b; }
.ua-sel { border: 1px solid #e5e5e7; border-radius: 6px; padding: 4px 6px; font: inherit; font-size: 12px; background: #fff; }
.ua-sel.ua-read { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.ua-sel.ua-write { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.ua-sel.ua-none { color: #a1a1aa; }
.ua-actions { padding: 12px 16px; }

/* Režim jen pro čtení */
.ws-readonly .btn[data-drawer], .ws-readonly .tk-quick, .ws-readonly .dc-upload, .ws-readonly .g-bulk, .ws-readonly .g-meal-add,
.ws-readonly [data-toggle-bulk], .ws-readonly .head-actions form, .ws-readonly .g-x, .ws-readonly .ct-del,
.ws-readonly .bd-total-form button, .ws-readonly .empty form, .ws-readonly .empty .btn-primary,
.ws-readonly #rdSave, .ws-readonly #rdSaveRoom, .ws-readonly #vSave, .ws-readonly #vsSaveDims,
.ws-readonly [data-shape-edit], .ws-readonly .cell-actions form { display: none !important; }
.ws-readonly .tk-check[disabled], .ws-readonly select[disabled], .ws-readonly .ct-star button[disabled] { cursor: default; opacity: 1; }
.ws-readonly .g-rsvp select[disabled] { appearance: none; -webkit-appearance: none; background: none; color: #18181b; padding-left: 0; }
.ws-readonly .bd-total-form input[disabled] { color: #18181b; background: transparent; }
.ws-readonly .tk-title { text-decoration: none !important; cursor: default; }
.ws-readonly .st-chip { cursor: default; }
.ws-readonly .ro-note { display: flex; }
.ro-note { display: none; align-items: center; gap: 8px; margin: 0 34px 0; padding: 8px 12px; border-radius: 8px; background: #eff6ff; color: #1d4ed8; font-size: 13px; }
/* Designér jen pro čtení: areál přes celou šířku, v místnostech jen výběr místnosti */
.ws-readonly .rd { grid-template-columns: 1fr; }
.ws-readonly .rd-tools-ov { display: none !important; }
.ws-readonly .rd > .rd-tools { display: none; }
.ws-readonly .rd:has(#rdRoomSelect) { grid-template-columns: 220px minmax(0, 1fr); }
.ws-readonly .rd:has(#rdRoomSelect) > .rd-tools { display: block; }
.ws-readonly .rd-tools .rd-tabs, .ws-readonly .rd-tools .rd-group:not([data-group="room"]),
.ws-readonly .rd-tools .rd-group[data-group="room"] > .rd-block:not(:first-child), .ws-readonly #rdNewRoom { display: none !important; }
@media (max-width: 900px) { .ws-readonly .rd:has(#rdRoomSelect) { grid-template-columns: 1fr; } }
.ua-mode { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-bottom: 1px solid #f0f0f2; } .ua-mode .tpl-check { flex: 1; min-width: 240px; }
.ua-account { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding: 12px 16px; border-bottom: 1px solid #f0f0f2; background: #fafafa; font-size: 13px; }
.ua-acc-item { display: flex; align-items: center; gap: 8px; }

/* Vývoj – uzavřené tikety */
.dv-closed td { background: #fafafa; }
.dv-closed .tk-title { color: #a1a1aa; font-weight: 400; }
.dv-closed .tk-title small { color: #c4c4c8; }
.dv-is-done .tk-title { text-decoration: line-through; text-decoration-color: #d4d4d8; }
.dv-closed .dv-type { opacity: .55; }
.dv-done-pill { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: #dcfce7; color: #15803d; }
.dv-done-pill .ico { color: #15803d; }
.dv-is-rejected .g-rsvp { color: #a1a1aa; }
.dv-closed-sep td { padding-top: 14px !important; }

/* Postup úkolů (klikací proužek) */
.tp-cell { min-width: 120px; }
.tp { display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: #3f3f46; padding: 4px 6px; margin: -4px -6px; border-radius: 6px; }
.tp:hover { background: #f0f0f2; }
.tp-bar { display: block; height: 6px; border-radius: 6px; background: #ececef; overflow: hidden; }
.tp-bar i { display: block; height: 100%; background: #18181b; border-radius: 6px; }
.tp.is-done .tp-bar i { background: #16a34a; }
.tp.is-late .tp-bar i { background: #f59e0b; }
.tp-txt { font-size: 11.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tp-txt b { color: #b45309; font-weight: 500; }
.tp.is-done .tp-txt { color: #15803d; }
.tp-empty { font-size: 12px; color: #a1a1aa; }

/* Kamínky – bílé oblázky */
.dtype-pebbles {
    background-color: #f3f2ee;
    background-image:
        radial-gradient(ellipse 5px 3.6px at 6px 7px, #ffffff 0 70%, rgba(150,145,130,.55) 72% 100%, transparent 100%),
        radial-gradient(ellipse 4px 3px at 17px 4px, #fbfaf6 0 70%, rgba(150,145,130,.5) 72% 100%, transparent 100%),
        radial-gradient(ellipse 4.6px 3.4px at 14px 15px, #ffffff 0 70%, rgba(150,145,130,.55) 72% 100%, transparent 100%),
        radial-gradient(ellipse 3.6px 2.8px at 4px 17px, #f8f7f2 0 70%, rgba(150,145,130,.5) 72% 100%, transparent 100%),
        radial-gradient(ellipse 3.4px 2.6px at 21px 19px, #ffffff 0 70%, rgba(150,145,130,.5) 72% 100%, transparent 100%);
    background-size: 24px 22px;
}

/* Designér – typy čárových prvků (cesta, zeď, plot, živý plot) */
.v-ptypes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 10px; }
.v-ptype.is-active { border-color: #18181b !important; box-shadow: inset 0 0 0 1px #18181b; background: #fafafa; }
.is-drawing .v-paths-hit path, .is-shape-edit .v-paths-hit path { pointer-events: none !important; }

/* Logistika dodavatele (příjezdy, montáž…) */
.lg-rows { display: flex; flex-direction: column; gap: 8px; }
.lg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px; border: 1px solid #ececef; border-radius: 8px; align-items: center; }
.lg-row.is-new { border-style: dashed; }
.lg-row select, .lg-row input { min-width: 0; }
.lg-time { display: flex; align-items: center; gap: 4px; }
.lg-time input { flex: 1; }
.lg-to { display: flex; flex-direction: column; gap: 2px; }
.lg-to small { font-size: 11px; color: #a1a1aa; }
.lg-del { justify-self: end; }
.lg-note { grid-column: 1 / -1; }
.lg-list { display: flex; flex-direction: column; gap: 1px; font-size: 12px; white-space: nowrap; } .lg-list b { font-weight: 500; color: #52525b; }
/* Vícedenní harmonogram */
.tl-days { margin-top: -4px; }
.tl-dayhead { margin: 14px 16px 4px; padding-bottom: 6px; border-bottom: 1px solid #f0f0f2; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #71717a; }
.tl-dayhead:first-child { margin-top: 4px; }
.tl-dayhead.is-wedding { color: #18181b; }
.tl-quick select[name=day] { max-width: 200px; }
.tl-kind { font-size: 11px; padding: 0 7px; border-radius: 999px; background: #eef2ff; color: #3730a3; }
.tl-k-setup { background: #fef3c7; color: #92400e; } .tl-k-teardown { background: #fee2e2; color: #991b1b; } .tl-k-departure { background: #f0f0f2; color: #52525b; }

/* Harmonogram dodavatele napříč svatbami */
.sp-link { display: flex; flex-direction: column; text-decoration: none; color: #18181b; font-size: 13px; }
.sp-link small { font-size: 11.5px; color: #71717a; }
.sp-link:hover { text-decoration: underline; }
.sp-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 16px; }
.sp-name { font-size: 22px; font-weight: 400; margin: 2px 0 6px; }
.sp-head .ov-meta a { display: inline-flex; align-items: center; gap: 5px; }
.sp-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.sp-h { margin: 0; padding: 14px 16px 6px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; }
.g-side-panel .sp-h { padding: 0 0 8px; }
.sp-agenda { padding: 0 0 8px; }
.sp-date { padding: 12px 16px 6px; font-size: 13px; color: #52525b; border-top: 1px solid #f0f0f2; }
.sp-date:first-child { border-top: 0; }
.sp-date b { color: #18181b; }
.sp-date.is-wedding b::after { content: ' · svatba'; font-weight: 400; color: #be185d; }
.sp-item { display: flex; align-items: center; gap: 12px; padding: 7px 16px; text-decoration: none; color: inherit; }
.sp-item:hover { background: #fafafa; }
.sp-time { width: 74px; flex: none; font-variant-numeric: tabular-nums; font-weight: 600; font-size: 14px; }
.sp-time small { font-weight: 400; color: #a1a1aa; font-size: 12px; }
.sp-what { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sp-what strong { font-size: 13.5px; font-weight: 500; }
.sp-what small { font-size: 12px; color: #71717a; }
.sp-weds li { padding: 8px 0; }
@media (max-width: 1000px) { .sp-grid { grid-template-columns: 1fr; } }
.dv-st-todo { background: #0ea5e9; }

/* Nástěnka – hlavička: odpočet + úprava vpravo v toku (bez absolutního pozicování) */
.ov-hero { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ov-hero .ov-edit { position: static; }
.ov-hero-side { display: flex; align-items: center; gap: 12px; margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
.ov-count { flex-direction: row; align-items: center; gap: 10px; min-width: 0; margin: 0; padding: 10px 16px; border-radius: 10px; background: #f7f7f8; border: 1px solid #ececef; }
.ov-count strong { font-size: 30px; font-weight: 300; line-height: 1; font-variant-numeric: tabular-nums; }
.ov-count span { font-size: 12px; line-height: 1.25; color: #71717a; margin: 0; }
.ov-count .ico { width: 22px; height: 22px; color: #16a34a; }
.ov-count.cd-past { background: #f0fdf4; border-color: #bbf7d0; }
.ov-count.cd-near { background: #fffbeb; border-color: #fde68a; }
.ov-count.cd-soon { background: #fef2f2; border-color: #fecaca; }
.ov-count.cd-today { background: #18181b; border-color: #18181b; color: #fff; }
.ov-count.cd-today span { color: #d4d4d8; }
@media (max-width: 900px) {
    .ov-hero-side { margin-left: 0; width: 100%; justify-content: space-between; }
}

/* Štítky hosta: alergie červeně, nealko modře, dítě zeleně */
.gb { display: inline-block; margin: 1px 3px 1px 0; padding: 0 6px; border-radius: 4px; font-size: 11px; font-weight: 600; line-height: 17px; letter-spacing: .02em; white-space: nowrap; }
.gb-allergy { background: #fee2e2; color: #b91c1c; }
.gb-allergy.gb-text { font-weight: 500; white-space: normal; }
.gb-nonalc { background: #dbeafe; color: #1d4ed8; }
.gb-child { background: #dcfce7; color: #15803d; }
.gb-wrap { display: flex; flex-wrap: wrap; align-items: center; }
.nc-missing { font-size: 11px; color: #b45309; }
.ge-allergies { display: flex; flex-wrap: wrap; gap: 6px; }
.ge-allergies label { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border: 1px solid #fecaca; border-radius: 999px; font-size: 12.5px; cursor: pointer; background: #fff; }
.ge-allergies label:has(input:checked) { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.ge-allergies input { width: auto; accent-color: #b91c1c; }
.g-acc { color: #52525b !important; }
.st-full { font-size: 11px; color: #a1a1aa; } .st-chip .gb-wrap { margin-top: 2px; } .st-chip .nc-missing { font-style: normal; }

/* Admin – uživatelé po organizacích (rozbalovací) */
.org-table td { vertical-align: middle; }
.org-row { cursor: pointer; }
.org-row:hover td { background: #fafafa; }
.org-chev { display: inline-grid; place-items: center; width: 16px; transition: transform .15s; }
.org.is-open .org-chev { transform: rotate(90deg); }
.org.is-open .org-row td { background: #f7f7f8; border-bottom-color: transparent; }
.org-member td { background: #fcfcfd; font-size: 13px; }
.org-member-head td { color: #71717a; font-size: 12px; padding-top: 6px !important; padding-bottom: 6px !important; }
.org-indent { display: inline-flex; width: 30px; flex: none; justify-content: flex-end; }
.org + .org .org-row td { border-top: 1px solid #e5e5e7; }

/* Sloup / překážka v místnosti */
.dtype-pillar.is-prop, .dtype-pillar {
    background-color: #9ca3af !important;
    background-image: repeating-linear-gradient(45deg, rgba(31,41,55,.55) 0 2px, transparent 2px 7px) !important;
    border: 2px solid #374151 !important; border-radius: 2px !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), 0 2px 6px rgba(0,0,0,.25) !important;
    color: #111827;
}
.rd-decor.shape-square .dtype-pillar, .rd-decor.shape-rectangle .dtype-pillar { border-radius: 2px !important; }
.dtype-pillar .rd-decor-label, .dtype-pillar .rd-decor-name { background: rgba(255,255,255,.9); padding: 0 5px; border-radius: 3px; font-size: 10px; }
.dtype-pillar svg { display: none; }
.rd-obj.is-blocked { outline: 2px solid #dc2626; outline-offset: 2px; }
.rd-obj.is-blocked::after { content: 'kolize – posuň'; position: absolute; left: 50%; top: 100%; transform: translate(-50%, 4px); white-space: nowrap; font-size: 10px; font-weight: 600; color: #fff; background: #dc2626; padding: 1px 6px; border-radius: 4px; pointer-events: none; z-index: 30; }

/* Toast – potvrzení akce */
.wh-toasts { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 2000; display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; }
.wh-toast { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 10px; background: #18181b; color: #fff; font: 500 13.5px Inter, sans-serif; box-shadow: 0 8px 24px rgba(0,0,0,.18); opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.wh-toast::before { content: ''; width: 16px; height: 16px; border-radius: 50%; background: #16a34a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 10px no-repeat; flex: none; }
.wh-toast.is-error::before { background-color: #dc2626; background-image: none; }
.wh-toast.is-in { opacity: 1; transform: none; }

/* Designér – vlastní kóty a tisk */
.rd-print-wrap { position: relative; display: inline-block; }
.rd-print-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 50; display: flex; flex-direction: column; min-width: 210px; padding: 4px; background: #fff; border: 1px solid #e5e5e7; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.rd-print-menu[hidden] { display: none; }
.rd-print-menu button { text-align: left; border: 0; background: none; padding: 8px 10px; border-radius: 6px; font: inherit; font-size: 13px; cursor: pointer; }
.rd-print-menu button:hover { background: #f4f4f5; }
.rd-dimbar { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 8px 16px; border-bottom: 1px solid #f0f0f2; background: #fafafa; font-size: 13px; }
.rd-dimbar[hidden] { display: none; }
.rd-dim-hint { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: #1d4ed8; }
.rd-dim-list { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-dim-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 10px; border: 1px solid #e5e5e7; border-radius: 999px; background: #fff; font-size: 12px; }
.rd-dim-chip button { border: 0; background: none; color: #a1a1aa; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 4px; }
.rd-dim-chip button:hover { color: #dc2626; }
.rd-print-head { display: none; }
@media print {
    @page { size: A4 landscape; margin: 10mm; }
    body.rd-printing { background: #fff !important; }
    body.rd-printing .sidebar, body.rd-printing .sidebar-expand, body.rd-printing .idbar, body.rd-printing .topbar,
    body.rd-printing .ro-note, body.rd-printing .flash, body.rd-printing .rd-tools, body.rd-printing .rd-tools-ov,
    body.rd-printing .rd-stage-head, body.rd-printing .rd-dimbar, body.rd-printing .whfb-btn, body.rd-printing .whfb-news,
    body.rd-printing .wh-toasts, body.rd-printing .rd-guides { display: none !important; }
    body.rd-printing .layout, body.rd-printing .content, body.rd-printing .page { display: block !important; padding: 0 !important; margin: 0 !important; }
    body.rd-printing .rd { display: block !important; }
    body.rd-printing .rd-stage-wrap { border: 0 !important; box-shadow: none !important; }
    body.rd-printing .rd-stage-scroll { overflow: visible !important; padding: 0 !important; }
    body.rd-printing .rd-print-head { display: flex !important; justify-content: space-between; align-items: baseline; margin: 0 0 6mm; padding-bottom: 3mm; border-bottom: 1px solid #ccc; font: 11pt Inter, sans-serif; }
    body.rd-printing .rd-print-head strong { font-size: 14pt; margin-right: 8px; }
    body.rd-printing .rd-print-head span { color: #666; }
    body.rd-printing .rd-obj.is-selected { box-shadow: none !important; outline: 0 !important; }
    body.rd-printing * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.ws-readonly #rdDimAdd { display: none !important; }
@media print {
    body.rd-printing .rd-stage-scroll, body.rd-printing .rd-stage-wrap, body.rd-printing .rd-stage { max-height: none !important; height: auto !important; overflow: visible !important; min-height: 0 !important; background: #fff !important; }
    body.rd-printing .rd-stage { justify-content: flex-start !important; }
    body.rd-printing .rd-stage-wrap { break-inside: avoid; page-break-inside: avoid; }
}
@media print {
    body.rd-printing .layout, body.rd-printing .content, body.rd-printing .page, body.rd-printing .rd,
    body.rd-printing .rd-stage-wrap, body.rd-printing .rd-print-head { width: auto !important; max-width: 100% !important; min-width: 0 !important; margin-left: 0 !important; left: 0 !important; }
    body.rd-printing .content { padding: 0 !important; }
    body.rd-printing .rd-print-head { flex-wrap: wrap; gap: 4px 16px; box-sizing: border-box; }
    body.rd-printing .rd-stage { justify-content: center !important; }
}
/* Tisk místnosti – samostatný blok pod <body> */
.rd-print-root { display: none; }
@media print {
    body.rd-printing > *:not(.rd-print-root) { display: none !important; }
    body.rd-printing > .rd-print-root { display: block !important; width: 100%; margin: 0; padding: 0; }
    .rd-print-root .rd-print-head { display: flex !important; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 16px;
        width: 100% !important; box-sizing: border-box; margin: 0 0 5mm; padding-bottom: 3mm; border-bottom: 1px solid #ccc; font: 11pt Inter, sans-serif; color: #18181b; }
    .rd-print-root .rd-print-head strong { font-size: 14pt; margin-right: 8px; }
    .rd-print-root .rd-print-head span { color: #666; }
    .rd-print-root .rd-frame { margin: 0 auto; }
    .rd-print-root .rd-obj.is-selected { box-shadow: none !important; outline: 0 !important; }
    .rd-print-root .rd-guides { display: none !important; }
}

/* Vývoj – priorita (signálové sloupečky) */
.prio { display: inline-flex; align-items: flex-end; gap: 2px; height: 14px; vertical-align: middle; }
.prio i { display: block; width: 4px; border-radius: 1px; background: #e4e4e7; }
.prio i:nth-child(1) { height: 6px; } .prio i:nth-child(2) { height: 10px; } .prio i:nth-child(3) { height: 14px; }
.prio-1 i.on { background: #a1a1aa; }
.prio-2 i.on { background: #f59e0b; }
.prio-3 i.on { background: #dc2626; }
.prio-cell { width: 28px; text-align: center; }
.dv-prio-form { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; }
.dv-prio-pick { display: flex; gap: 6px; }
.dv-prio-pick button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 4px; border: 1px solid #e5e5e7; border-radius: 8px; background: #fff; font: inherit; font-size: 12px; color: #52525b; cursor: pointer; }
.dv-prio-pick button:hover { border-color: #a1a1aa; }
.dv-prio-pick button.is-on { border-color: #18181b; box-shadow: inset 0 0 0 1px #18181b; color: #18181b; font-weight: 600; }

/* Obřad – nástup */
.cp-table td { padding: 4px 6px !important; }
.cp-table input { width: 100%; min-width: 0; border: 1px solid transparent; border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px; background: transparent; }
.cp-table input:hover, .cp-table input:focus { border-color: #e5e5e7; background: #fff; outline: none; }
.cp-table .cp-ord { width: 70px; }
.cp-table tr.cp-new input { background: #fafafa; }
.cp-actions { padding: 12px 16px; justify-content: space-between; align-items: center; }
/* Obřad – plánek */
.cer { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 16px; align-items: start; }
.cer-side { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
.cer-box { padding: 12px !important; display: flex; flex-direction: column; gap: 8px; }
.cer-box .sp-h { padding: 0; }
.cer-gen { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cer-gen label { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: #71717a; }
.cer-gen .cer-full { grid-column: 1 / -1; }
.cer-gen input, .cer-gen select, .cer-search { border: 1px solid #e5e5e7; border-radius: 6px; padding: 5px 7px; font: inherit; font-size: 13px; color: #18181b; background: #fff; }
.cer-kinds { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.cer-kind { display: flex; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid #e5e5e7; border-radius: 6px; background: #fff; font: inherit; font-size: 12.5px; cursor: pointer; text-align: left; }
.cer-kind:hover { border-color: #a1a1aa; }
.cer-kind i { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 3px; border-radius: 50%; background: #f0f0f2; font-style: normal; font-size: 10px; font-weight: 700; }
.cer-pool { display: flex; flex-direction: column; gap: 5px; max-height: 44vh; overflow-y: auto; }
.cer-stage-card { padding: 0 !important; overflow: hidden; }
.cer-head { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid #f0f0f2; flex-wrap: wrap; font-size: 13px; }
.cer-info { flex: 1; color: #52525b; }
.cer-size input { width: 58px; border: 1px solid #e5e5e7; border-radius: 6px; padding: 4px 6px; font: inherit; font-size: 13px; }
.cer-sel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 14px; background: #fafafa; border-bottom: 1px solid #f0f0f2; font-size: 13px; }
.cer-sel[hidden] { display: none; }
.cer-inl { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: #71717a; }
.cer-inl input { width: 70px; border: 1px solid #e5e5e7; border-radius: 6px; padding: 3px 6px; font: inherit; font-size: 12.5px; }
.cer-inl input[type=text] { width: 140px; }
.cer-g { font-weight: 600; }
.cer-scroll { overflow: auto; padding: 12px; background: #fafafa; }
.cer-stage { position: relative; margin: 0 auto; background-color: #fff; background-image: linear-gradient(#f0f0f2 1px, transparent 1px), linear-gradient(90deg, #f0f0f2 1px, transparent 1px); border: 1px solid #d4d4d8; user-select: none; }
.cer-front { position: absolute; top: 4px; left: 50%; transform: translateX(-50%); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #a1a1aa; }
.cer-marq { position: absolute; border: 1px solid #0284c7; background: rgba(2,132,199,.12); pointer-events: none; z-index: 5; }
.cer-it { position: absolute; display: grid; place-items: center; box-sizing: border-box; cursor: grab; font-size: 11px; font-weight: 700; color: #18181b; touch-action: none; }
.cer-it.s-round { border-radius: 50%; }
.cer-it.k-chair { background: #f4f4f5; border: 1.5px dashed #a1a1aa; }
.cer-it.k-chair.has-guest { background: #e0f2fe; border: 1.5px solid #0284c7; }
/* židle rezervovaná pro nástup: silný červený rámeček, zůstane i při obsazení */
.cer-it.k-chair.is-res { border: 3.5px solid #dc2626; background: #fee2e2; }
.cer-it.k-chair.is-res.has-guest { background: #e0f2fe; }
.cer-res-n { color: #dc2626; }
.cer-num { font-size: 9px; font-weight: 600; color: #71717a; }
.cer-it.k-officiant { background: #71717a; color: #fff; border: 2px solid #3f3f46; }
.cer-it.k-groom, .cer-it.k-bride { background: #fff; border: 2px solid #18181b; font-size: 14px; }
.cer-it.k-witness, .cer-it.k-groomsman { background: #bae6fd; border: 2px solid #0284c7; }
.cer-it.k-bridesmaid { background: #fbcfe8; border: 2px solid #db2777; }
.cer-it.k-music { background: #fff; border: 2px solid #52525b; font-size: 15px; }
.cer-it.k-arch { background: repeating-linear-gradient(45deg, #fed7aa 0 4px, #fdba74 4px 8px); border: 1px solid #c2410c; border-radius: 3px; font-size: 10px; }
.cer-it.k-table { background: #f5f5f4; border: 1.5px solid #78716c; border-radius: 4px; font-size: 10px; }
.cer-it.k-label { background: #fff1f2; border: 1px solid #fecdd3; border-radius: 4px; font-size: 11px; font-weight: 500; }
.cer-it.s-rect span, .cer-it.s-label span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; padding: 0 3px; }
.cer-it.is-sel { outline: 2px solid #f59e0b; outline-offset: 2px; z-index: 5; }
.cer-name { position: absolute; transform: translateX(-50%); font-size: 9.5px; line-height: 1.1; white-space: nowrap; color: #0c4a6e; background: rgba(255,255,255,.85); padding: 0 2px; border-radius: 2px; pointer-events: none; z-index: 4; max-width: 80px; overflow: hidden; text-overflow: ellipsis; }
.cer-name-role { color: #3f3f46; }
@media (max-width: 1000px) { .cer { grid-template-columns: 1fr; } .cer-side { position: static; max-height: none; } }
/* Obřad – pole generátoru se vejdou do úzkého panelu */
.cer-gen > label { min-width: 0; }
.cer-gen input, .cer-gen select, .cer-search { width: 100%; min-width: 0; box-sizing: border-box; }
.cer-gen > label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cer-side { min-width: 0; }
.cer-box { min-width: 0; overflow: hidden; }
.cer-kinds > button { min-width: 0; }
/* Obřad – popisek jako čistý text (ne objekt) */
.cer-it.k-label { background: transparent !important; border: 1px dashed transparent !important; font-size: 12px; font-weight: 500; font-style: italic; color: #52525b; }
.cer-it.k-label:hover { border-color: #d4d4d8 !important; }
.cer-it.k-label.is-sel { outline: 0; border-color: #f59e0b !important; }
.cer-it.k-label span { overflow: visible; }
/* Obřad – nástup: přetahování řádků */
.cp-table .cp-ord { width: 64px; white-space: nowrap; }
.cp-handle { display: inline-block; width: 18px; color: #a1a1aa; cursor: grab; letter-spacing: -2px; font-size: 14px; user-select: none; }
.cp-handle:hover { color: #18181b; }
.cp-n { font-variant-numeric: tabular-nums; color: #52525b; font-weight: 600; }
.cp-table tr.is-drag { opacity: .4; }

/* Tabulky na tabletech (na šířku): nepřetékat stránku, posouvat se uvnitř karty a zhustit */
html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } } /* clip nevytváří posuvný kontejner → menu vlevo zůstane přilepené */
.card:has(> table), .card:has(> .table), .g-list { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 1366px) {
    .table th, .table td { padding-left: 8px !important; padding-right: 8px !important; }
    .table tbody td { font-size: 12.5px; }
    .table .btn-sm { padding: 5px 9px; font-size: 12px; }
    .cell-actions { white-space: normal; min-width: 120px; }
    .cell-actions > .btn, .cell-actions > form { margin: 2px 0 2px 4px; }
    .page { padding-left: 22px; padding-right: 22px; }
    .wl-couple { gap: 8px; }
    .wl-couple .wcover { width: 46px; height: 32px; }
    .countdown { display: block; width: max-content; margin: 3px 0 0; }
    .tp-cell { min-width: 96px; }
}

/* Obloukové stoly (wave) */
.rd-table.shape-arc { background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible; }
.rd-arc-svg { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
.rd-arc-svg path { fill: #f3e5c4; stroke: #18181b; stroke-width: 1.5; filter: drop-shadow(0 2px 3px rgba(0,0,0,.12)); }
.rd-table.shape-arc.is-selected .rd-arc-svg path { stroke: #f59e0b; stroke-width: 2.5; }
.rd-arc-body { position: absolute !important; transform: translate(-50%, -50%); width: auto !important; height: auto !important; background: none !important; border: 0 !important; box-shadow: none !important; display: flex; flex-direction: column; align-items: center; pointer-events: none; white-space: nowrap; }
.rd-arc-info { font-size: 12px; margin: 2px 0 6px; }

/* Designér – vícenásobný výběr */
.rd-marquee { position: absolute; border: 1.5px dashed #2563eb; background: rgba(37,99,235,.08); pointer-events: none; z-index: 60; }
.rd-multibar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 16px; border-bottom: 1px solid #f0f0f2; background: #eff6ff; font-size: 13px; }
.rd-multibar[hidden] { display: none; }
#rdMultiBtn.is-on { background: #2563eb; color: #fff; border-color: #2563eb; }
.ws-readonly #rdMultiBtn { display: none !important; }
.cer-it.k-witness_g { background: #bae6fd; border: 2px solid #0284c7; }
.cer-it.k-witness_b { background: #fbcfe8; border: 2px solid #db2777; }

/* Tlačítko při ukládání: kolečko vedle textu */
.is-loading { position: relative; pointer-events: none; opacity: .85; }
.is-loading::after {
    content: ''; display: inline-block; width: 12px; height: 12px; margin-left: 8px; vertical-align: -2px;
    border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
    animation: wh-spin .7s linear infinite;
}
@keyframes wh-spin { to { transform: rotate(360deg); } }
.g-x.is-loading::after, .tk-check.is-loading::after { margin-left: 0; width: 9px; height: 9px; }
/* Obřad – jmenovky pod židlemi: šířka podle místa mezi židlemi, max. 2 řádky */
.cer-name { max-width: none; white-space: normal; text-align: center; line-height: 1.1; font-size: 9px; word-break: break-word;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding: 0 1px; }
/* Obřad – vlastní bublina s celým jménem při najetí na židli */
.cer-it.k-chair:hover { z-index: 8; box-shadow: 0 0 0 3px rgba(2,132,199,.25); }

/* Obřad – obřadní místa (hlavní / alternativní) */
.cpl-bar { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.cpl-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.cpl-tab { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid #e5e5e7; border-radius: 8px; background: #fff; color: #18181b; text-decoration: none; font: inherit; font-size: 13px; cursor: pointer; }
.cpl-tab small { color: #71717a; }
.cpl-tab.is-active { border-color: #18181b; box-shadow: inset 0 0 0 1px #18181b; font-weight: 600; }
.cpl-tab.is-alt { border-style: dashed; }
.cpl-tab.is-alt.is-active { border-style: solid; border-color: #b45309; box-shadow: inset 0 0 0 1px #b45309; }
.cpl-alt { font-size: 9.5px; font-weight: 700; letter-spacing: .05em; padding: 1px 6px; border-radius: 999px; background: #fef3c7; color: #92400e; }
.cpl-add { color: #52525b; border-style: dashed; }
.cpl-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; border-radius: 8px; background: #fffbeb; border: 1px solid #fde68a; color: #78350f; font-size: 13px; }
.cpl-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 12px !important; }
.cpl-form[hidden] { display: none; }
.cpl-form input, .cpl-form select { border: 1px solid #e5e5e7; border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px; min-width: 180px; }
.cer.is-alt .cer-stage { border: 2px dashed #f59e0b; }
/* Areál – budova s alternativním obřadním místem */
.v-bld-altcer { position: absolute; top: 4px; right: 4px; padding: 1px 7px; border-radius: 999px; background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; font-size: 10px; font-weight: 700; white-space: nowrap; pointer-events: none; }
.v-bld-altcer { max-width: calc(100% - 8px); overflow: hidden; text-overflow: ellipsis; }

/* E-shop */
.sh-promo-note { font-size: 13px; color: #92400e; background: #fef3c7; padding: 6px 12px; border-radius: 8px; }
.sh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.sh-card { display: flex; flex-direction: column; gap: 6px; padding: 0 0 14px !important; overflow: hidden; color: inherit; text-decoration: none; }
.sh-card:hover { border-color: #a1a1aa; }
.sh-card > strong, .sh-card > small, .sh-card > .sh-price { padding: 0 14px; }
.sh-card > small { color: #71717a; font-size: 12.5px; flex: 1; }
.sh-img { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; background: #f4f4f5; overflow: hidden; }
.sh-img img { width: 100%; height: 100%; object-fit: cover; }
.sh-img > span:first-child { font-size: 40px; font-weight: 300; color: #a1a1aa; }
.sh-gift { position: absolute; top: 8px; left: 8px; padding: 2px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: 11.5px; font-weight: 700; }
.sh-gift-inl { color: #92400e; font-weight: 600; }
.sh-price { font-weight: 600; font-size: 14px; }
.sh-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 16px; align-items: start; }
.sh-d-img { padding: 0 !important; overflow: hidden; aspect-ratio: 4 / 3; display: grid; place-items: center; background: #f4f4f5; }
.sh-d-img img { width: 100%; height: 100%; object-fit: cover; }
.sh-d-img span { font-size: 64px; color: #a1a1aa; font-weight: 300; }
.sh-d-name { font-size: 22px; font-weight: 400; margin: 2px 0 8px; }
.sh-d-desc { font-size: 13.5px; color: #3f3f46; line-height: 1.55; margin-bottom: 14px; }
.sh-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-top: 16px; padding: 12px 14px; border-radius: 8px; background: #f7f7f8; }
.sh-total strong { font-size: 22px; font-weight: 600; }
.sh-promo-opt { padding: 8px 10px !important; border: 1px solid #fcd34d !important; background: #fffbeb; border-radius: 8px; }
.sh-st { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: #f0f0f2; }
.sh-st-new { background: #dbeafe; color: #1d4ed8; } .sh-st-confirmed, .sh-st-production { background: #fef3c7; color: #92400e; }
.sh-st-shipped { background: #e0e7ff; color: #3730a3; } .sh-st-done { background: #dcfce7; color: #15803d; } .sh-st-cancelled { color: #a1a1aa; }
.sh-st-form { display: flex; flex-wrap: wrap; gap: 4px; }
.sh-st-form select, .sh-st-form input { border: 1px solid #e5e5e7; border-radius: 6px; padding: 4px 6px; font: inherit; font-size: 12px; }
.sh-st-form input { width: 150px; }
.sh-thumb { display: block; width: 44px; height: 34px; border-radius: 4px; background: #f4f4f5; overflow: hidden; }
.sh-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sh-thumb-lg { width: 120px; height: 90px; }
@media (max-width: 900px) { .sh-detail { grid-template-columns: 1fr; } }
/* E-shop – fotky celé (bez ořezu) */
.sh-d-img { aspect-ratio: auto; min-height: 220px; }
.sh-d-img img { width: 100%; height: auto; max-height: 78vh; object-fit: contain; display: block; }
.sh-img img { object-fit: contain; }
.sh-opts { display: flex; flex-wrap: wrap; gap: 6px; }
.sh-opts .tpl-check { flex: 1; min-width: 180px; }
.sh-opt-ta { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px !important; }
.sh-total strong.is-missing { font-size: 15px; font-weight: 500; color: #a1a1aa; }

/* Zasedací pořádek – plánek s číslovanými židlemi */
.st-view { margin: 0; }
.st-view .sup-cat { border: 0; cursor: pointer; font: inherit; }
.st-order { border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; background: #fff; }
.st-main { min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.st-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: #52525b; }
.st-legend span { display: inline-flex; align-items: center; gap: 6px; }
.st-lg-dot { width: 13px; height: 13px; border-radius: 50%; display: inline-block; }
.st-lg-free { background: #fff; border: 1.5px dashed #a1a1aa; }
.st-lg-ring { background: #fff; box-shadow: inset 0 0 0 2.5px #dc2626; }
.st-lg-nonalc { width: 9px; height: 9px; background: #2563eb; }
.st-lg-kid { width: 9px; height: 9px; background: #16a34a; }
.st-plan { display: flex; flex-direction: column; gap: 12px; }
.st-plan-room { padding: 12px !important; }
.st-plan-room h3 { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin: 0 0 8px; }
.sp-svg { width: 100%; height: auto; max-height: 78vh; display: block; font-family: Inter, system-ui, sans-serif; }
.sp-room { fill: #fafaf9; stroke: #3f3f46; stroke-width: 7; }
.sp-decor { fill: #f4f4f5; stroke: #a1a1aa; stroke-width: 2; }
.sp-decor-t { font-size: 18px; fill: #52525b; }
.sp-pillar { fill: #52525b; }
.sp-wall { fill: #d4d4d8; stroke: #71717a; stroke-width: 2; }
.sp-tbody { fill: #f5ede4; stroke: #a8a29e; stroke-width: 2; }
.sp-tlabel { font-size: 20px; font-weight: 600; fill: #27272a; pointer-events: none; }
.sp-tcount { font-size: 15px; fill: #71717a; pointer-events: none; }
.sp-chair circle { fill: #fff; stroke: #a1a1aa; stroke-width: 2; stroke-dasharray: 5 3; }
.sp-chair.is-taken circle { stroke: #3f3f46; stroke-dasharray: none; }
.sp-chair text { font-size: 17px; font-weight: 600; fill: #52525b; pointer-events: none; }
.sp-chair.is-taken text { fill: #fff; }
.sp-chair .sp-ring { fill: none !important; stroke: #dc2626 !important; stroke-width: 4 !important; stroke-dasharray: none !important; }
.sp-chair .sp-dot { fill: #2563eb !important; stroke: #fff !important; stroke-width: 2 !important; stroke-dasharray: none !important; }
.sp-chair .sp-kid-dot { fill: #16a34a !important; stroke: #fff !important; stroke-width: 2 !important; stroke-dasharray: none !important; }
.sp-name { font-size: 15px; fill: #27272a; }
.st-plan .sp-chair { cursor: pointer; }
.st-plan .sp-chair:hover circle, .st-plan .sp-chair.is-over-drop circle { stroke: #18181b; stroke-width: 4; stroke-dasharray: none; }
.st-plan .sp-table.is-over-drop .sp-tbody { fill: #e7efe5; }
.st-seats { display: flex; flex-direction: column; gap: 4px; }
.st-seat { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 6px; min-height: 30px; border-radius: 6px; padding: 1px 2px; }
.st-seat > b { font-size: 12px; color: #71717a; text-align: right; font-variant-numeric: tabular-nums; }
.st-seat-free { font-size: 12px; color: #c4c4c8; border: 1px dashed #e4e4e7; border-radius: 6px; padding: 5px 8px; }
.st-seat.is-over-drop { background: #f4f4f5; box-shadow: inset 0 0 0 1px #18181b; }
.st-chip.is-compact { padding: 4px 24px 4px 8px; }
.st-meal { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 5px; vertical-align: 1px; }
.st-rename { border: 0; background: none; color: #a1a1aa; cursor: pointer; font-size: 13px; padding: 0 2px; margin-right: auto; }
.st-rename:hover { color: #18181b; }

/* Designér areálu – mapový podklad z katastru */
.vm-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.vm-layer.is-moving { pointer-events: auto; cursor: move; z-index: 60; outline: 2px dashed #2563eb; outline-offset: -2px; }
.vm-img { position: absolute; transform-origin: center center; }
.vm-img img { position: absolute; inset: 0; width: 100%; height: 100%; user-select: none; -webkit-user-drag: none; }
#vRoom.has-map > .shp-outline { opacity: .6; }
.vm-search { position: relative; margin-bottom: 8px; }
.vm-search input { width: 100%; border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; }
.vm-sugg { position: absolute; left: 0; right: 0; top: calc(100% + 2px); z-index: 80; background: #fff; border: 1px solid #e5e5e7; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.08); max-height: 240px; overflow-y: auto; }
.vm-sugg button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 7px 10px; font: inherit; font-size: 13px; cursor: pointer; }
.vm-sugg button:hover { background: #f4f4f5; }
.vm-addr { margin: 8px 0; font-size: 12px; }
.rd-zoom { display: inline-flex; gap: 2px; margin-right: 6px; }
.rd-zoom .btn { min-width: 30px; padding-left: 8px; padding-right: 8px; }
.rd-zoom-val { min-width: 58px !important; font-variant-numeric: tabular-nums; }
#venue .rd-stage { justify-content: safe center; }
.vm-layer.is-picking { pointer-events: auto; cursor: crosshair; z-index: 60; }
.vm-pick { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.vm-pick polygon { fill: rgba(37, 99, 235, .22); stroke: #2563eb; stroke-width: .35; }
.vm-pick-panel { padding: 8px; margin-bottom: 6px; border: 1px solid #bfdbfe; background: #eff6ff; border-radius: 8px; }
.vm-pick-panel p { margin: 0 0 4px; font-size: 12px; }

/* Svatební web – editor */
.ww { display: flex; flex-direction: column; gap: 16px; }
.ww-status { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 18px !important; }
.ww-badge { display: inline-block; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 20px; background: #f4f4f5; color: #52525b; margin-bottom: 8px; }
.ww-badge.is-on { background: #dcfce7; color: #15803d; }
.ww-url { display: flex; gap: 6px; align-items: center; }
.ww-url input { min-width: 320px; border: 1px solid #e5e5e7; border-radius: 6px; padding: 7px 9px; font: inherit; font-size: 13px; color: #52525b; background: #fafafa; }
.ww-status-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ww-switch { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; cursor: pointer; }
.ww-switch input { width: 18px; height: 18px; accent-color: #16a34a; }
.ww-sec { padding: 18px 20px !important; }
.ww-h { margin: 0 0 6px; font-size: 16px; }
.ww-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin: 14px 0; }
.ww-theme { display: flex; flex-direction: column; gap: 6px; cursor: pointer; padding: 8px; border: 1px solid #e5e5e7; border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.ww-theme:hover { border-color: #a1a1aa; }
.ww-theme.is-active { border-color: #18181b; box-shadow: 0 0 0 2px #18181b; }
.ww-theme input { position: absolute; opacity: 0; pointer-events: none; }
.ww-frame { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: #f4f4f5; }
.ww-frame iframe { position: absolute; left: 0; top: 0; width: 1280px; height: 960px; border: 0; transform: scale(.17); transform-origin: 0 0; pointer-events: none; }
.ww-theme-name { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; }
.ww-sw { display: inline-flex; }
.ww-sw i { width: 12px; height: 12px; border-radius: 50%; border: 1px solid #0000001a; margin-right: -3px; }
.ww-theme small { font-size: 12px; color: #71717a; line-height: 1.4; }
.ww-color { width: 38px; height: 26px; border: 1px solid #e5e5e7; border-radius: 6px; padding: 0 2px; vertical-align: middle; margin-left: 6px; }
.ww-thumb { width: 96px; height: 72px; border-radius: 8px; overflow: hidden; flex: none; }
.ww-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ww-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; margin-bottom: 12px; }
.ww-gal-item { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #71717a; }
.ww-gal-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.ww-stats { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 10px; font-size: 13px; color: #71717a; }
.ww-stats b { font-size: 20px; color: #18181b; margin-right: 4px; }
.ww-accent { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ww-accent .ww-color { width: 56px; height: 36px; min-width: 56px; padding: 2px; margin: 0; border: 1px solid #e5e5e7; border-radius: 8px; background: #fff; cursor: pointer; }

/* Paletka barev svatby */
.pal-editor { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pal-rows { display: flex; flex-direction: column; gap: 6px; width: 100%; max-width: 420px; }
.pal-row { display: grid; grid-template-columns: 46px 1fr 30px; gap: 6px; align-items: center; }
.pal-row input[type=color] { width: 46px; height: 36px; padding: 2px; border: 1px solid #e5e5e7; border-radius: 8px; background: #fff; cursor: pointer; }
.pal-row input[type=text] { border: 1px solid #e5e5e7; border-radius: 6px; padding: 8px 10px; font: inherit; font-size: 14px; }
.pal-x { border: 0; background: none; color: #a1a1aa; font-size: 18px; cursor: pointer; }
.pal-x:hover { color: #dc2626; }
.pal-swatches { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 4px 0; }
.pal-sw { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #3f3f46; }
.pal-sw i { width: 28px; height: 28px; border-radius: 50%; box-shadow: inset 0 0 0 1px #0000001a; }

/* ── Ubytování ──────────────────────────────────────────────── */
.ac-head { align-items: center; flex-wrap: wrap; gap: 10px; }
.ac-nights { margin: 0; }
.ac-nights .sup-cat { border: 0; font: inherit; cursor: pointer; }
.ac-summary { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0 0 14px; font-size: 13px; color: #71717a; }
.ac-summary b { color: #18181b; font-size: 16px; }
.ac-places { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ac-place { padding: 14px 16px !important; }
.ac-place-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.ac-place-head h3 { margin: 0; font-size: 16px; }
.ac-place-head small { color: #71717a; font-size: 12px; }
.ac-kind { font-size: 24px; line-height: 1; }
.ac-cap { margin-left: auto; font-size: 12px; color: #52525b; background: #f4f4f5; padding: 3px 10px; border-radius: 20px; }
.ac-place-actions { display: flex; gap: 4px; }
.ac-floor { margin: 12px 0 6px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #71717a; }
.ac-rooms { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.ac-room { padding: 10px !important; display: flex; flex-direction: column; gap: 6px; }
.ac-room-head { display: flex; gap: 10px; align-items: flex-start; }
.ac-room-head img { width: 54px; height: 42px; object-fit: cover; border-radius: 6px; flex: none; }
.ac-room-head strong { font-size: 15px; }
.ac-edit { margin-left: auto; color: #a1a1aa; text-decoration: none; }
.ac-edit:hover { color: #18181b; }
.ac-flags { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 3px; }
.ac-flags span { font-size: 10.5px; background: #eef2ff; color: #3730a3; padding: 1px 6px; border-radius: 4px; }
.ac-bed { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 8px; padding: 6px; border-radius: 8px; background: #fafafa; border: 1px dashed #e4e4e7; min-height: 40px; }
.ac-bed.is-full { border-style: solid; border-color: #bbf7d0; background: #f0fdf4; }
.ac-bed.is-over-drop, .ac-area.is-over-drop { border-color: #18181b; background: #f4f4f5; }
.ac-bed-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ac-bed-body > small { font-size: 11px; color: #71717a; }
.ac-bed-ico { width: 26px; height: 30px; border-radius: 4px; border: 2px solid #a1a1aa; position: relative; background: #fff; }
.ac-bed-ico::before { content: ''; position: absolute; left: 3px; right: 3px; top: 3px; height: 7px; border-radius: 2px; background: #e4e4e7; }
.ac-bed-double .ac-bed-ico { width: 26px; border-color: #8b5e3c; } .ac-bed-double .ac-bed-ico::before { background: repeating-linear-gradient(90deg, #e9dccb 0 8px, transparent 8px 10px); }
.ac-bed-extra .ac-bed-ico { border-style: dashed; }
.ac-free { font-size: 12px; color: #c4c4c8; }
.ac-area { min-height: 70px; padding: 10px; border: 1px dashed #d4d4d8; border-radius: 10px; display: flex; flex-wrap: wrap; gap: 6px; align-content: flex-start; }
.ac-area .st-chip { min-width: 180px; }
.ac-chip small.ac-miss { color: #b45309; }
.ac-kid { font-style: normal; font-size: 10px; background: #dcfce7; color: #15803d; padding: 0 5px; border-radius: 4px; }
.ac-dialog { border: 0; border-radius: 14px; padding: 0; width: min(520px, 94vw); box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.ac-dialog::backdrop { background: rgba(24, 24, 27, .4); }
.ac-dlg-form { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.ac-dlg-form h3 { margin: 0 0 4px; }
.ac-dlg-form .form-actions { display: flex; gap: 8px; align-items: center; }
.ac-flag-pick { display: flex; flex-wrap: wrap; gap: 6px; }
.ac-flag-pick label { cursor: pointer; }
.ac-flag-pick input { position: absolute; opacity: 0; }
.ac-flag-pick span { display: inline-block; padding: 6px 12px; border-radius: 20px; border: 1px solid #e4e4e7; font-size: 13px; }
.ac-flag-pick input:checked + span { background: #18181b; color: #fff; border-color: #18181b; }
.ac-flag-pick input:focus-visible + span { outline: 2px solid #18181b; outline-offset: 2px; }
.ac-bedrows { display: flex; flex-direction: column; gap: 6px; max-width: 560px; }
.ac-bedrow { display: grid; grid-template-columns: 190px 1fr 30px; gap: 6px; align-items: center; }
.ac-bedrow select, .ac-bedrow input { border: 1px solid #e5e5e7; border-radius: 6px; padding: 8px 10px; font: inherit; font-size: 14px; background: #fff; }
.ac-bed-add { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }

/* designér ubytování */
.ad-head { align-items: center; gap: 10px; flex-wrap: wrap; }
.ad-head .sup-cat { border: 0; font: inherit; cursor: pointer; }
.ad { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 14px; align-items: start; }
.ad-side { padding: 14px !important; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
.ad-block { display: flex; flex-direction: column; gap: 6px; }
.ad-bedbtns { display: flex; flex-wrap: wrap; gap: 4px; }
.ad-hint { font-size: 11.5px; margin: 2px 0 0; }
.ad-row { display: flex; gap: 6px; }
.ad-g { display: flex; justify-content: space-between; align-items: center; font-size: 13px; position: relative; padding-right: 22px; }
.ad-pool { display: flex; flex-direction: column; gap: 5px; }
.ad-stage-wrap { padding: 16px !important; overflow: auto; }
.ad-stage { position: relative; background-color: #fff; background-image: linear-gradient(#f1f1f3 1px, transparent 1px), linear-gradient(90deg, #f1f1f3 1px, transparent 1px); min-height: 300px; }
.ad-empty { position: absolute; inset: 0; display: grid; place-items: center; color: #a1a1aa; font-size: 14px; margin: 0; }
.ad-room { position: absolute; border: 3px solid #3f3f46; background: #fbfaf8; cursor: move; touch-action: none; }
.ad-room.is-sel { border-color: #2563eb; }
.ad-room-label { position: absolute; left: 6px; top: 4px; font-size: 13px; font-weight: 700; color: #3f3f46; pointer-events: none; }
.ad-resize { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; background: #2563eb; border-radius: 3px; cursor: nwse-resize; }
.ad-bed { position: absolute; border: 2px solid #8b8b93; border-radius: 4px; background: #fff; cursor: grab; transform-origin: center; touch-action: none; }
.ad-bed-double { border-color: #8b5e3c; background: #fdf8f2; }
.ad-bed-extra { border-style: dashed; }
.ad-bed.is-full { background: #ecfdf5; }
.ad-bed.is-sel { outline: 3px solid #2563eb; outline-offset: 1px; }
.ad-bed.is-over-drop { outline: 3px dashed #16a34a; }
.ad-pillow { position: absolute; top: 6%; left: 10%; width: 80%; height: 16%; border-radius: 3px; background: #e9e4dc; }
.ad-bed-double .ad-pillow { width: 38%; } .ad-bed-double .ad-pillow-2 { left: 52%; }
.ad-occ { position: absolute; inset: 0; display: flex; flex-wrap: wrap; gap: 2px; align-items: center; justify-content: center; pointer-events: none; }
.ad-occ i { font-style: normal; font-size: 10px; font-weight: 700; color: #fff; background: #16a34a; border-radius: 50%; width: 20px; height: 20px; display: grid; place-items: center; }
@media (max-width: 900px) { .ad { grid-template-columns: 1fr; } .ad-side { position: static; max-height: none; } }
.ac-free-blds { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -4px 0 14px; font-size: 13px; }
.ac-free-blds:empty { display: none; }

/* ikony ubytování (Lucide) */
.ac-kind { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: #f4f4f5; color: #3f3f46; }
.ac-kind .ico { width: 20px; height: 20px; }
.ac-flags span { display: inline-flex; align-items: center; gap: 4px; }
.ac-flags .ico { width: 12px; height: 12px; }
.ac-bed-ico { width: 26px; height: 26px; border: 0 !important; background: none !important; color: #71717a; display: grid; place-items: center; }
.ac-bed-ico::before { content: none !important; }
.ac-bed-ico .ico { width: 22px; height: 22px; }
.ac-bed-double .ac-bed-ico { color: #8b5e3c; }
.ac-bed-extra .ac-bed-ico { color: #a1a1aa; }
.ac-edit .ico, .st-rename .ico, .ac-free-blds .ico, .g-acc .ico, .ac-crumb .ico { width: 14px; height: 14px; vertical-align: -2px; }
.ac-photo { position: relative; padding: 0; border: 0; background: none; cursor: zoom-in; flex: none; border-radius: 6px; overflow: hidden; }
.ac-photo img { width: 54px; height: 42px; object-fit: cover; display: block; }
.ac-photo span { position: absolute; right: 2px; bottom: 2px; font-size: 10px; font-weight: 600; color: #fff; background: rgba(0,0,0,.55); border-radius: 4px; padding: 0 4px; }
.ww-gal-item img[data-lightbox] { cursor: zoom-in; }

/* prohlížeč fotek */
.wh-lightbox { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; background: rgba(9, 9, 11, .9); padding: 56px 72px; }
.wh-lightbox.is-open { display: flex; }
.wh-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.wh-lb-btn { position: absolute; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; }
.wh-lb-btn:hover { background: rgba(255,255,255,.24); }
.wh-lb-btn .ico { width: 22px; height: 22px; }
.wh-lb-close { top: 14px; right: 14px; }
.wh-lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.wh-lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
.wh-lb-count { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); color: #e4e4e7; font-size: 13px; }
@media (max-width: 600px) { .wh-lightbox { padding: 56px 8px; } .wh-lb-prev { left: 4px; } .wh-lb-next { right: 4px; } }

/* designér ubytování – kóty, dveře, okna, vybavení */
.ad-room { overflow: visible; }
.ad-room-label { display: flex; flex-direction: column; line-height: 1.15; z-index: 3; }
.ad-room-label small { font-size: 10.5px; font-weight: 500; color: #71717a; }
.ad-koty { position: absolute; pointer-events: none; overflow: visible; }
.ad-koty line { stroke: #2563eb; stroke-width: 1; }
.ad-kota { position: absolute; transform: translate(-50%, -50%); font-size: 11px; font-weight: 600; color: #2563eb; background: #fff; padding: 0 4px; white-space: nowrap; pointer-events: none; }
.ad-kota-h { transform: translate(-50%, -50%) rotate(-90deg); }
.ad-open { position: absolute; z-index: 4; cursor: ew-resize; }
.ad-open.is-v { cursor: ns-resize; }
.ad-open-window { background: #dbeafe; border: 2px solid #3b82f6; }
.ad-open-window.is-h { background-image: linear-gradient(#3b82f6, #3b82f6); background-size: 100% 1px; background-position: center; background-repeat: no-repeat; }
.ad-open-window.is-v { background-image: linear-gradient(90deg, #3b82f6, #3b82f6); background-size: 1px 100%; background-position: center; background-repeat: no-repeat; }
.ad-open-door { background: #fbfaf8; border-left: 3px solid #3f3f46; border-right: 3px solid #3f3f46; }
.ad-open-door.is-v { border: 0; border-top: 3px solid #3f3f46; border-bottom: 3px solid #3f3f46; }
.ad-open.is-sel { outline: 2px solid #f59e0b; outline-offset: 2px; }
.ad-swing { position: absolute; overflow: visible; pointer-events: none; z-index: 1; }
.ad-swing path { fill: #f4f4f514; stroke: #a1a1aa; stroke-width: 1; stroke-dasharray: 4 3; }
.ad-furn { position: absolute; z-index: 2; display: grid; place-items: center; background: #f4f4f5; border: 1.5px solid #a1a1aa; border-radius: 3px; cursor: grab; transform-origin: center; touch-action: none; color: #52525b; }
.ad-furn small { position: absolute; bottom: 2px; left: 0; right: 0; text-align: center; font-size: 10px; line-height: 1.1; pointer-events: none; }
.ad-furn-ico { display: grid; place-items: center; pointer-events: none; }
.ad-furn-ico .ico { width: 16px; height: 16px; }
.ad-furn-rug { background: #fdf4e7; border-style: dashed; z-index: 1; }
.ad-furn-plant { border-radius: 50%; background: #ecfdf5; border-color: #86c79d; color: #15803d; }
.ad-furn-chair, .ad-furn-armchair { border-radius: 8px; }
.ad-furn-table, .ad-furn-desk { background: #f5ede4; border-color: #b8a58f; }
.ad-furn-wardrobe { background: #ede9e3; border-color: #8b8b93; }
.ad-furn.is-sel { outline: 2px solid #f59e0b; outline-offset: 1px; }
.ad-bed { z-index: 3; }
.ad-pal-h { display: block; margin: 10px 0 4px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; }
.ad-pals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.ad-pal { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 7px 2px; border: 1px solid #e4e4e7; border-radius: 8px; background: #fff; font: inherit; font-size: 10.5px; line-height: 1.15; color: #3f3f46; cursor: pointer; text-align: center; }
.ad-pal .ico { width: 18px; height: 18px; }
.ad-pal:hover:not(:disabled) { border-color: #18181b; }
.ad-pal:disabled { opacity: .45; cursor: not-allowed; }
.ad-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ad-num input { width: 100%; }
/* stěna pokoje vně plochy – vnitřek odpovídá přesně rozměru pokoje (prvky nepřesahují zeď) */
.ad-room { border: 0; box-shadow: 0 0 0 3px #3f3f46; }
.ad-room.is-sel { box-shadow: 0 0 0 3px #2563eb; }
/* popis pokoje vždy navrchu (čitelný i přes postel), kliknutí propouští na prvky pod ním */
.ad-room-label { z-index: 6; left: 4px; top: 4px; padding: 2px 6px; border-radius: 6px; background: rgba(251, 250, 248, .88); pointer-events: none; }

/* jména hostů na lůžkách – přetáhnutelná */
.ad-occ { flex-direction: column; flex-wrap: nowrap; gap: 3px; padding: 18% 4px 4px; }
.ad-occ i { width: auto; height: auto; max-width: 100%; border-radius: 10px; padding: 2px 7px; font-size: 11px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: auto; cursor: grab; }
.ad-occ i:hover { background: #15803d; }
.ad-pool.is-drop-back { min-height: 54px; border: 2px dashed #d4d4d8; border-radius: 10px; padding: 6px; }
.ad-pool.is-drop-back::before { content: 'Sem přetáhneme hosta zpět mezi čekající'; display: block; font-size: 12px; color: #71717a; text-align: center; }
.ad-pool.is-over-drop { border-color: #18181b; background: #f4f4f5; }
/* jmenovky na lůžkách – neotočená vrstva nad postelí, ostré písmo */
.ad-names { position: absolute; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 4px; pointer-events: none; }
.ad-names i { font-style: normal; font-size: 11px; font-weight: 700; line-height: 1.2; color: #fff; background: #16a34a; border-radius: 10px; padding: 2px 8px; text-align: center; max-width: 100%; pointer-events: auto; cursor: grab; }
.ad-names i:hover { background: #15803d; }
.ad-names .ad-br { display: none; }
/* úzké lůžko (přistýlka, jednolůžko na výšku): jméno a příjmení pod sebou */
.ad-names.is-narrow .ad-br { display: inline; }
.ad-room.is-overlap { box-shadow: 0 0 0 3px #dc2626; }
.ad-room.is-overlap::after { content: 'Pokoje se překrývají'; position: absolute; right: 4px; bottom: 4px; z-index: 6; font-size: 10px; font-weight: 600; color: #fff; background: #dc2626; border-radius: 4px; padding: 1px 6px; pointer-events: none; }

/* designér ubytování – přepínač pokojů */
.ad-modes .sup-cat { border: 0; font: inherit; cursor: pointer; }
.ad-roomtabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.ad-rtab { display: inline-flex; align-items: baseline; gap: 6px; padding: 7px 12px; border: 1px solid #e4e4e7; border-radius: 10px; background: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.ad-rtab small { font-size: 11px; color: #71717a; }
.ad-rtab:hover { border-color: #a1a1aa; }
.ad-rtab.is-active { background: #18181b; border-color: #18181b; color: #fff; }
.ad-rtab.is-active small { color: #d4d4d8; }
.ad-rtab.is-full small { color: #16a34a; font-weight: 600; }
.ad-rtab.is-active.is-full small { color: #86efac; }

/* designér ubytování – horní lišta */
.ad-head { display: flex; justify-content: flex-start; align-items: center; gap: 10px 18px; flex-wrap: wrap; }
.ad-tool { display: inline-flex; align-items: center; gap: 8px; }
.ad-tool-l { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #a1a1aa; }
.ad-seg { display: inline-flex; padding: 3px; gap: 2px; background: #f4f4f5; border-radius: 10px; margin: 0; }
.ad-seg .sup-cat { border: 0; margin: 0; padding: 6px 12px; border-radius: 8px; background: transparent; color: #52525b; font: inherit; font-size: 13px; cursor: pointer; }
.ad-seg .sup-cat:hover { color: #18181b; }
.ad-seg .sup-cat.is-active { background: #fff; color: #18181b; font-weight: 600; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.ad-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.ad-actions .rd-save-state { line-height: 1; align-self: center; }
.ad-actions .st-order { height: 34px; }
/* vybraný prvek vždy navrchu (viditelný i přes postel) */
.ad-furn.is-sel, .ad-bed.is-sel { z-index: 7; }

/* Designér místa – štítky budovy (ubytování, alt. obřad) */
.v-bld-tags { position: absolute; left: 4px; right: 4px; bottom: 4px; display: flex; flex-wrap: wrap; gap: 3px; pointer-events: none; }
.v-bld-tags:empty { display: none; }
.v-bld-acc, .v-bld-tags .v-bld-altcer { position: static; display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 600; line-height: 1.3; padding: 2px 7px; border-radius: 10px; white-space: nowrap; }
.v-bld-acc { background: #ecfdf5; color: #047857; box-shadow: inset 0 0 0 1px #a7f3d0; }
.v-bld-tags .v-tag-ico { width: 12px; height: 12px; }
.ac-place.is-flash { animation: acFlash 1.6s ease-out; }
@keyframes acFlash { 0% { box-shadow: 0 0 0 3px #16a34a; } 100% { box-shadow: 0 0 0 0 transparent; } }

/* potvrzovací dialog (whConfirm) */
.wh-confirm { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: 16px; background: rgba(24, 24, 27, 0); transition: background .15s; }
.wh-confirm.is-open { background: rgba(24, 24, 27, .45); }
.wh-confirm-box { width: min(460px, 100%); display: grid; grid-template-columns: 44px 1fr; gap: 14px 16px; padding: 22px; background: #fff; border-radius: 16px; box-shadow: 0 24px 64px rgba(0,0,0,.22); transform: translateY(8px) scale(.98); opacity: 0; transition: transform .15s, opacity .15s; }
.wh-confirm.is-open .wh-confirm-box { transform: none; opacity: 1; }
.wh-confirm-ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #fef3c7; color: #b45309; }
.wh-confirm-ico.is-danger { background: #fee2e2; color: #dc2626; }
.wh-confirm-ico svg { width: 22px; height: 22px; }
.wh-confirm-body h3 { margin: 2px 0 6px; font-size: 17px; line-height: 1.3; }
.wh-confirm-text { font-size: 14px; color: #52525b; line-height: 1.5; }
.wh-confirm-text b { color: #18181b; }
.wh-confirm-text .wh-c-change { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.wh-confirm-text .wh-c-pill { padding: 3px 10px; border-radius: 20px; font-size: 13px; font-weight: 600; background: #f4f4f5; color: #3f3f46; }
.wh-confirm-text .wh-c-pill.is-new { background: #dcfce7; color: #15803d; }
.wh-confirm-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }

/* Přehled svatby – rozpočet s kruhovými grafy */
.ov-budget { grid-column: span 2; }
@media (max-width: 760px) { .ov-budget { grid-column: auto; } }
.bd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.bd-kpis > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #fafaf9; border: 1px solid #f0f0ee; min-width: 0; }
.bd-kpis > div.is-alert { background: #fef2f2; border-color: #fecaca; }
.bd-kpis span { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; }
.bd-kpis b { font-size: 20px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bd-kpis small { font-size: 11.5px; color: #a1a1aa; }
.bd-amber { color: #b45309; }
.bd-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 600px) { .bd-charts { grid-template-columns: 1fr; } }
.bd-chart { display: flex; align-items: center; gap: 16px; min-width: 0; }
.dn { position: relative; margin: 0; width: 132px; height: 132px; flex: none; }
.dn svg { width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.dn-track { fill: none; stroke: #f1f1f0; stroke-width: 12; }
.dn-seg { fill: none; stroke-width: 12; transition: stroke-dasharray .9s cubic-bezier(.22, .8, .25, 1), stroke-width .2s; cursor: default; }
.dn-seg:hover { stroke-width: 15; }
.dn figcaption { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; pointer-events: none; }
.dn figcaption b { font-size: 22px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.dn figcaption span { font-size: 10.5px; color: #71717a; margin-top: 4px; max-width: 80px; line-height: 1.2; }
.bd-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; font-size: 13px; }
.bd-legend li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.bd-legend li.muted { display: block; font-size: 12px; padding-left: 18px; }
.bd-legend i { width: 10px; height: 10px; border-radius: 3px; }
.bd-legend b { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bd-legend-cats li { white-space: nowrap; }
.bd-legend-cats li > :not(b):not(i) { overflow: hidden; text-overflow: ellipsis; }
.bd-empty { margin: 0; font-size: 13px; }
.bd-pays-h { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin-bottom: -6px; }
@media (prefers-reduced-motion: reduce) { .dn-seg { transition: none; } }
.bd-legend li.bd-legend-h { display: block; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin-bottom: 2px; }
.bd-legend b em { font-style: normal; font-weight: 500; color: #a1a1aa; margin-left: 6px; }

/* Zpět / Vpřed v designérech */
.wh-undo { display: inline-flex; gap: 2px; margin-right: 4px; }
.wh-undo .btn { padding-left: 8px; padding-right: 8px; }
.wh-undo .btn:disabled { opacity: .35; cursor: default; }
.wh-undo .ico { width: 16px; height: 16px; }

/* Koš */
.tr-note { margin: -4px 0 14px; font-size: 13px; }
.tr-inline { display: inline-block; margin: 0 0 0 4px; }

/* ── Kalendář ───────────────────────────────────────────── */
.cal { display: flex; flex-direction: column; gap: 12px; }
.cal-bar { display: flex; align-items: center; gap: 10px 16px; flex-wrap: wrap; }
.cal-nav { display: flex; align-items: center; gap: 4px; }
.cal-nav .btn { min-width: 34px; }
.cal-title { margin: 0 0 0 8px; font-size: 20px; font-weight: 600; text-transform: capitalize; }
.cal-views { margin-left: auto; }
.cal-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cal-kinds { display: flex; flex-wrap: wrap; gap: 6px; }
.cal-kind { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid #e4e4e7; border-radius: 20px; background: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.cal-kind i { width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.cal-kind.is-off { opacity: .45; text-decoration: line-through; }
.cal-body { padding: 0 !important; overflow: hidden; }
.cal-dow, .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-dow span { padding: 8px 10px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #71717a; border-bottom: 1px solid #f0f0f2; }
.cal-cell { min-height: 108px; padding: 4px 5px 6px; border-right: 1px solid #f0f0f2; border-bottom: 1px solid #f0f0f2; display: flex; flex-direction: column; gap: 2px; cursor: pointer; min-width: 0; }
.cal-cell:nth-child(7n) { border-right: 0; }
.cal-cell.is-weekend { background: #fcfcfb; }
.cal-cell.is-other { background: #fafafa; }
.cal-cell.is-other .cal-num { color: #c4c4c8; }
.cal-cell:hover { background: #f8faf7; }
.cal-num { align-self: flex-end; font-size: 12px; font-weight: 600; color: #52525b; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.cal-num:hover { background: #f4f4f5; }
.cal-cell.is-today .cal-num { background: #18181b; color: #fff; }
.cal-chip { display: block; width: 100%; text-align: left; border: 0; border-radius: 5px; padding: 2px 6px; font: inherit; font-size: 11.5px; line-height: 1.35; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    background: color-mix(in srgb, var(--c) 14%, #fff); color: color-mix(in srgb, var(--c) 80%, #000); box-shadow: inset 3px 0 0 var(--c); }
.cal-chip b { font-weight: 700; }
.cal-chip.is-done { opacity: .5; text-decoration: line-through; }
.cal-chip.is-late { background: #fef2f2; color: #b91c1c; box-shadow: inset 3px 0 0 #dc2626; }
.cal-more { border: 0; background: none; font: inherit; font-size: 11px; color: #71717a; text-align: left; padding: 0 6px; cursor: pointer; }
.cal-colhead, .cal-allday, .cal-tgrid { display: grid; }
.cal-cols-7 .cal-colhead, .cal-cols-7 .cal-allday, .cal-cols-7 .cal-tgrid { grid-template-columns: 54px repeat(7, minmax(0, 1fr)); }
.cal-cols-1 .cal-colhead, .cal-cols-1 .cal-allday, .cal-cols-1 .cal-tgrid { grid-template-columns: 54px minmax(0, 1fr); }
.cal-dayhead { border: 0; background: none; padding: 8px 4px; font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; border-bottom: 1px solid #f0f0f2; }
.cal-dayhead small { font-size: 11px; text-transform: uppercase; color: #71717a; letter-spacing: .06em; }
.cal-dayhead b { font-size: 18px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; }
.cal-dayhead.is-today b { background: #18181b; color: #fff; }
.cal-allday { border-bottom: 1px solid #e4e4e7; }
.cal-allday > span { font-size: 10px; color: #a1a1aa; padding: 6px 4px; text-align: right; }
.cal-adcell { padding: 3px; display: flex; flex-direction: column; gap: 2px; min-height: 28px; border-left: 1px solid #f0f0f2; cursor: pointer; min-width: 0; }
.cal-tgrid { height: 62vh; overflow-y: auto; position: relative; }
.cal-hours { display: flex; flex-direction: column; }
.cal-hour { flex: 1; min-height: 44px; position: relative; }
.cal-hour span { position: absolute; top: -7px; right: 6px; font-size: 10.5px; color: #a1a1aa; font-variant-numeric: tabular-nums; }
.cal-col { position: relative; border-left: 1px solid #f0f0f2; background-image: repeating-linear-gradient(#f0f0f2 0 1px, transparent 1px calc(100% / 16)); cursor: pointer; min-height: calc(44px * 16); }
.cal-col.is-today { background-color: #fbfdfa; }
.cal-ev { position: absolute; left: 3px; right: 3px; border: 0; border-radius: 6px; padding: 3px 6px; text-align: left; font: inherit; font-size: 11.5px; line-height: 1.3; overflow: hidden; cursor: pointer;
    background: color-mix(in srgb, var(--c) 16%, #fff); color: color-mix(in srgb, var(--c) 80%, #000); box-shadow: inset 3px 0 0 var(--c); }
.cal-ev b { display: block; font-size: 10.5px; }
.cal-ev small { display: block; opacity: .75; }
.cal-now { position: absolute; left: 0; right: 0; height: 2px; background: #dc2626; z-index: 2; }
.cal-now::before { content: ''; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #dc2626; }
.cal-agenda { border-top: 1px solid #e4e4e7; padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; }
.cal-agenda h4 { margin: 0 0 4px; font-size: 13px; }
.cal-arow { display: grid; grid-template-columns: 10px 90px minmax(0, 1fr); gap: 10px; align-items: center; border: 0; background: none; text-align: left; font: inherit; font-size: 14px; padding: 6px 4px; border-radius: 6px; cursor: pointer; }
.cal-arow:hover { background: #f4f4f5; }
.cal-arow i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.cal-arow small { color: #71717a; }
.cal-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; padding: 16px; }
.cal-ytitle { border: 0; background: none; font: inherit; font-weight: 600; text-transform: capitalize; padding: 0 0 6px; cursor: pointer; }
.cal-ydow, .cal-ygrid { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.cal-ydow span { font-size: 10px; color: #a1a1aa; }
.cal-yd { border: 0; background: none; font: inherit; font-size: 11.5px; height: 28px; border-radius: 6px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: #3f3f46; }
.cal-yd span { display: flex; gap: 1px; height: 4px; }
.cal-yd span i { width: 4px; height: 4px; border-radius: 50%; }
.cal-yd:hover { background: #f4f4f5; }
.cal-yd.is-today { background: #18181b; color: #fff; }
.cal-yd.has { font-weight: 700; }
.cal-pop { position: absolute; z-index: 900; background: #fff; border-radius: 12px; box-shadow: 0 16px 44px rgba(0,0,0,.18), 0 0 0 1px #0000000d; padding: 14px 16px; }
.cal-pop-head { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #71717a; }
.cal-pop-head i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); }
.cal-pop-head .st-x { margin-left: auto; position: static; }
.cal-pop h4 { margin: 6px 0 2px; font-size: 16px; }
.cal-pop p { margin: 4px 0; font-size: 13px; }
.cal-pop-when { color: #3f3f46; }
.cal-pop-actions { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 10px; }
.cal-dt { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cal-howto { margin: 4px 0; padding-left: 18px; font-size: 13px; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 760px) { .cal-cell { min-height: 74px; } .cal-chip { font-size: 10px; } .cal-dt { grid-template-columns: 1fr 1fr; } .cal-views { margin-left: 0; } }

/* widget kalendáře na přehledu svatby */
.ocal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.ocal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.ocal-dow { font-size: 10px; color: #a1a1aa; text-transform: uppercase; }
.ocal-d { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 32px; border-radius: 7px; font-size: 12px; color: #3f3f46; text-decoration: none; }
.ocal-d span { display: flex; gap: 2px; height: 4px; }
.ocal-d i { width: 4px; height: 4px; border-radius: 50%; }
.ocal-d:hover { background: #f4f4f5; }
.ocal-d.has { font-weight: 700; }
.ocal-d.is-today { background: #18181b; color: #fff; }
.ocal-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.ocal-list li { display: grid; grid-template-columns: 8px 74px minmax(0, 1fr); gap: 8px; align-items: center; }
.ocal-list li.muted { display: block; }
.ocal-list i { width: 8px; height: 8px; border-radius: 50%; }
.ocal-when { color: #71717a; font-variant-numeric: tabular-nums; font-size: 12px; }
.ocal-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bd-ln { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.bd-legend-cats li { white-space: normal; }
.ocal-list li { grid-template-columns: 8px 96px minmax(0, 1fr); }
.ocal-when { white-space: nowrap; }
.v-reset-opts { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.v-reset-opts label { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: #18181b; cursor: pointer; }
.v-reset-opts input { width: 16px; height: 16px; margin-top: 2px; accent-color: #18181b; }

/* zvýraznění chybějícího pole (whRequire) */
@keyframes whShake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-6px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(2px); } }
.wh-invalid { animation: whShake .42s cubic-bezier(.36, .07, .19, .97); border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .15) !important; background-color: #fffafa !important; }
.wh-invalid-msg { display: block; margin-top: 5px; font-style: normal; font-size: 12px; font-weight: 500; color: #dc2626; animation: whFadeIn .2s ease-out; }
@keyframes whFadeIn { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wh-invalid { animation: none; } }
.bld-fit { margin: 2px 0 0; font-size: 12.5px; }
.bld-fit.is-bad { color: #dc2626; font-weight: 600; }

/* ═══════════════ Moodboard ═══════════════ */
.mb-boards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.mb-board { display: flex; flex-direction: column; gap: 4px; padding: 10px 10px 14px; text-decoration: none; color: var(--text); transition: transform .15s, box-shadow .15s; }
.mb-board:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.mb-board strong { font-size: 15px; margin: 8px 4px 0; }
.mb-board small { color: var(--text-muted); margin: 0 4px; }
.mb-cover { display: grid; gap: 3px; aspect-ratio: 4/3; border-radius: 10px; overflow: hidden; background: var(--bg-soft); grid-template-columns: 1fr; }
.mb-cover img, .mb-cover i { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 0; }
.mb-cover em { margin: auto; color: var(--text-muted); font-size: 13px; font-style: normal; }
.mb-cover-2 { grid-template-columns: 1fr 1fr; }
.mb-cover-3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; } .mb-cover-3 > :first-child { grid-row: span 2; }
.mb-cover-4 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.mb-cover-5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; } .mb-cover-5 > :first-child { grid-row: span 2; }

.mb { position: relative; }
.mb-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.mb-title { flex: 1; min-width: 160px; margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.01em; padding: 2px 6px; border-radius: 6px; outline: none; }
.mb-title[contenteditable]:hover { background: var(--bg-soft); }
.mb-title[contenteditable]:focus { background: #fff; box-shadow: 0 0 0 2px var(--line); }
.mb-bar .ad-seg { display: inline-flex; gap: 4px; }
.mb-actions { display: flex; gap: 6px; align-items: center; }
.mb-actions [data-share].is-on { border-color: #16a34a; color: #15803d; }
.mb-menu { position: relative; }
.mb-drop { display: none; position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 240px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 40px rgba(0,0,0,.12); padding: 6px; }
.mb-drop.is-open { display: block; }
.mb-drop button, .mb-drop a { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; background: none; border-radius: 6px; font: inherit; font-size: 14px; color: var(--text); text-decoration: none; cursor: pointer; }
.mb-drop button:hover, .mb-drop a:hover { background: var(--bg-soft); }
.mb-drop .is-danger { color: #b91c1c; }
.mb-drop-hint { display: block; padding: 8px 10px 4px; font-size: 12px; color: var(--text-muted); border-top: 1px solid var(--line); margin-top: 4px; }

.mb-sub { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: space-between; margin-bottom: 14px; }
.mb-secs { display: flex; gap: 6px; flex-wrap: wrap; }
.mb-secs .sup-cat { cursor: pointer; }
.mb-secs .sup-cat.is-drop { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.mb-sec-add { border-style: dashed !important; }
.mb-palette { display: flex; align-items: center; gap: 6px; }
.mb-pal-label { font-size: 12px; color: var(--text-muted); margin-right: 2px; }
.mb-sw { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); cursor: pointer; padding: 0; transition: transform .12s; }
.mb-sw:hover { transform: scale(1.15); }
.mb-pal-inline { display: inline-flex; gap: 3px; vertical-align: middle; } .mb-pal-inline i { width: 16px; height: 16px; border-radius: 50%; display: inline-block; }

/* mřížka – masonry */
.mb-grid { columns: 4 230px; column-gap: 14px; }
.mb-card { position: relative; break-inside: avoid; margin: 0 0 14px; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.06); cursor: zoom-in; user-select: none; transition: box-shadow .15s, transform .15s, opacity .15s; }
.mb-card:hover { box-shadow: 0 10px 28px rgba(0,0,0,.12); }
.mb-card img { display: block; width: 100%; height: auto; object-fit: cover; background: var(--bg-soft); }
.mb-card.is-drag { opacity: .35; }
.mb-card.is-before { box-shadow: 0 -4px 0 0 #18181b; } .mb-card.is-after { box-shadow: 0 4px 0 0 #18181b; }
.mb-grid .mb-card[draggable="true"] { cursor: grab; }
.mb-chip { display: flex; align-items: flex-end; aspect-ratio: 1; padding: 12px; }
.mb-chip b { font-size: 12px; font-weight: 600; letter-spacing: .04em; padding: 3px 7px; border-radius: 5px; background: rgba(255,255,255,.85); color: #18181b; }
.mb-note { display: block; padding: 18px 18px 22px; background: #fdf8ec; font-size: 14px; line-height: 1.5; color: #44403c; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 18px; }
.mb-cap { display: block; padding: 8px 12px 10px; font-size: 13px; color: var(--text-soft); }
.mb-dots { position: absolute; left: 10px; bottom: 10px; display: flex; gap: 3px; opacity: 0; transition: opacity .15s; }
.mb-cap ~ .mb-dots { bottom: 44px; }
.mb-dots i { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.mb-card:hover .mb-dots { opacity: 1; }
.mb-badges { position: absolute; left: 8px; top: 8px; display: flex; gap: 4px; }
.mb-badges em { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px; border-radius: 999px; background: rgba(255,255,255,.92); font-style: normal; font-size: 11px; font-weight: 600; color: #3f3f46; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.mb-badges .is-like { color: #e11d48; } .mb-badges .is-no { color: #71717a; } .mb-badges .is-pin { color: #18181b; }
.mb-quick { position: absolute; right: 8px; top: 8px; display: flex; gap: 4px; opacity: 0; transform: translateY(-4px); transition: opacity .15s, transform .15s; }
.mb-card:hover .mb-quick { opacity: 1; transform: none; }
.mb-quick button { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.95); color: #27272a; cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.mb-quick [data-q="like"]:hover { color: #e11d48; }
.mb-empty { column-span: all; text-align: center; padding: 60px 20px; border: 2px dashed var(--line-strong); border-radius: 16px; color: var(--text-soft); background: #fff; }
.mb-empty kbd { font: 600 12px Inter, sans-serif; padding: 1px 6px; border: 1px solid var(--line-strong); border-bottom-width: 2px; border-radius: 4px; background: var(--bg-soft); }

/* plátno */
.mb-canvas { position: relative; overflow: hidden; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.mb-world { position: absolute; left: 0; top: 0; transform-origin: 0 0; background-color: #fbfaf8; background-image: radial-gradient(#e7e5e4 1px, transparent 1px); background-size: 24px 24px; }
.mb-free { position: absolute; margin: 0; cursor: move; touch-action: none; }
.mb-free.mb-k-color .mb-chip { aspect-ratio: auto; height: 100%; }
.mb-h { position: absolute; display: none; z-index: 2; }
.mb-free:hover .mb-h { display: grid; }
.mb-h-size { right: 0; bottom: 0; width: 22px; height: 22px; cursor: nwse-resize; background: linear-gradient(135deg, transparent 50%, rgba(24,24,27,.75) 50%); border-bottom-right-radius: 12px; }
.mb-h-rot { left: 50%; bottom: 8px; transform: translateX(-50%); width: 26px; height: 26px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.95); box-shadow: 0 2px 6px rgba(0,0,0,.2); cursor: grab; }

/* přetažení souborů */
.mb-dropzone { position: fixed; inset: 0; z-index: 90; display: none; place-items: center; background: rgba(24,24,27,.45); backdrop-filter: blur(2px); pointer-events: none; }
.mb-dropzone.is-on { display: grid; }
.mb-dropzone span { padding: 26px 40px; border: 2px dashed #fff; border-radius: 18px; color: #fff; font-size: 20px; font-weight: 600; }

/* detail */
body.mb-open { overflow: hidden; }
.mb-detail { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; }
.mb-detail[hidden] { display: none; }
.mb-d-back { position: absolute; inset: 0; background: rgba(12,12,14,.78); }
.mb-d-box { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 340px; width: min(1200px, 96vw); height: min(820px, 92vh); background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.mb-d-media { position: relative; display: grid; place-items: center; background: #111113; min-height: 0; }
.mb-d-media img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.mb-d-chip { width: 60%; aspect-ratio: 1; border-radius: 18px; }
.mb-d-note { max-width: 80%; color: #fafaf9; font: 500 28px/1.4 'Cormorant Garamond', Georgia, serif; text-align: center; }
.mb-d-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.15); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.mb-d-nav:hover { background: rgba(255,255,255,.3); }
.mb-d-nav.is-prev { left: 14px; } .mb-d-nav.is-next { right: 14px; }
.mb-d-side { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 22px 20px 18px; overflow-y: auto; }
.mb-d-close { position: absolute; right: 10px; top: 10px; width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--bg-soft); cursor: pointer; }
.mb-d-l { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--text-soft); }
.mb-d-l:first-of-type { margin-top: 24px; }
.mb-d-l input[type=text], .mb-d-l input[type=url], .mb-d-l select, .mb-d-l textarea { font: inherit; font-weight: 400; font-size: 14px; color: var(--text); padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.mb-d-row { display: flex; gap: 6px; } .mb-d-row input[type=color] { width: 44px; height: 38px; padding: 2px; border: 1px solid var(--line); border-radius: 8px; }
.mb-d-title { margin: 24px 0 0; font-size: 18px; }
.mb-d-src { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-soft); }
.mb-d-cols { display: flex; gap: 6px; } .mb-d-cols button { width: 30px; height: 30px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); cursor: pointer; }
.mb-d-react { display: flex; gap: 6px; } .mb-d-react .btn { display: inline-flex; align-items: center; gap: 6px; }
.mb-d-comments h4 { margin: 6px 0 6px; font-size: 13px; }
.mb-c { position: relative; padding: 8px 10px; margin-bottom: 6px; background: var(--bg-soft); border-radius: 10px; font-size: 13px; }
.mb-c small { margin-left: 6px; color: var(--text-muted); font-size: 11px; }
.mb-c p { margin: 3px 0 0; white-space: pre-line; }
.mb-c button { position: absolute; right: 6px; top: 6px; border: 0; background: none; color: var(--text-muted); cursor: pointer; }
.mb-d-cform { display: flex; flex-direction: column; gap: 6px; } .mb-d-cform textarea { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; resize: vertical; }
.mb-d-cform .btn { align-self: flex-end; }
.mb-d-foot { margin-top: auto; display: flex; gap: 6px; justify-content: space-between; padding-top: 10px; border-top: 1px solid var(--line); }
.mb-d-foot .btn { display: inline-flex; align-items: center; gap: 6px; } .mb-d-foot .is-danger { color: #b91c1c; }

/* sdílení */
.mb-share-modes { display: grid; gap: 6px; margin: 12px 0; }
.mb-share-modes label { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.mb-share-modes label:has(input:checked) { border-color: #18181b; box-shadow: inset 0 0 0 1px #18181b; }
.mb-share-modes span { display: flex; flex-direction: column; } .mb-share-modes small { color: var(--text-muted); }
.ac-dialog .ww-url[hidden] { display: none; }

/* veřejná stránka */
body.mb-public { margin: 0; background: var(--bg); font-family: Inter, sans-serif; color: var(--text); }
.mb-pub-wrap { max-width: 1400px; margin: 0 auto; padding: 32px 16px 60px; }
.mb-pub-head { text-align: center; margin-bottom: 26px; }
.mb-pub-head img { max-height: 46px; max-width: 180px; object-fit: contain; }
.mb-pub-kicker { display: block; margin-top: 12px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--text-muted); }
.mb-pub-head h1 { margin: 4px 0; font: 600 44px/1.1 'Cormorant Garamond', Georgia, serif; }
.mb-pub-head p { margin: 4px 0; color: var(--text-soft); }
.mb-pub-hint { display: inline-block; margin-top: 10px !important; padding: 6px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: 13px; }
.mb-bar-pub { justify-content: center; }

@media (max-width: 760px) {
    .mb-grid { columns: 2 140px; column-gap: 10px; } .mb-card { margin-bottom: 10px; }
    .mb-d-box { grid-template-columns: 1fr; grid-template-rows: 45vh 1fr; height: 94vh; }
    .mb-quick { opacity: 1; transform: none; } .mb-quick button { width: 26px; height: 26px; }
    .mb-pub-head h1 { font-size: 32px; }
}
@media (hover: none) { .mb-quick, .mb-dots { opacity: 1; transform: none; } }

/* moodboard – písma */
.mb-font { display: flex; flex-direction: column; gap: 6px; padding: 22px 18px 14px; background: #fff; color: var(--ink, #27272a); }
.mb-font-s { font-size: 34px; line-height: 1.15; overflow-wrap: anywhere; }
.mb-font-abc { font-size: 15px; opacity: .7; }
.mb-font-meta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--line); font: 12px Inter, sans-serif; color: var(--text-soft); }
.mb-font-meta b { font-weight: 600; color: var(--text); }
.mb-font-meta em { font-style: normal; padding: 1px 7px; border-radius: 999px; background: var(--bg-soft); font-size: 11px; }
.mb-typo { display: inline-flex; align-items: center; gap: 6px; margin-right: 10px; }
.mb-aa { width: 34px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 17px; cursor: pointer; padding: 0; color: var(--text); }
.mb-aa:hover { border-color: #18181b; }
.mb-d-font { max-width: 86%; color: #fafaf9; text-align: center; }
.mb-d-font span { display: block; font-size: 64px; line-height: 1.15; overflow-wrap: anywhere; }
.mb-d-font small { display: block; margin-top: 18px; font-size: 22px; line-height: 1.5; opacity: .75; }
.mb-detail .mb-d-media:has(.mb-d-font) { background: #f5f3ee; } .mb-d-media:has(.mb-d-font) .mb-d-font { color: #27272a; }
.mb-fw-row { display: flex; flex-direction: column; padding: 8px 0; border-bottom: 1px solid var(--line); }
.mb-fw-row small { color: var(--text-muted); font-size: 11px; } .mb-fw-row b { font-size: 24px; font-weight: 400; }
.mb-font-dlg { width: min(860px, 96vw); }
.mb-fp-top { display: grid; grid-template-columns: 1fr 1.3fr auto; gap: 8px; margin: 10px 0; }
.mb-fp-top input, .mb-fp-top select { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.mb-font-dlg .mb-secs { margin-bottom: 10px; }
.mb-fp-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; max-height: 52vh; overflow-y: auto; padding: 2px; }
.mb-fp-it { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; color: var(--text); }
.mb-fp-it:hover { border-color: #18181b; box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.mb-fp-it.is-used { background: var(--bg-soft); }
.mb-fp-s { font-size: 28px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mb-fp-it small { font-size: 11px; color: var(--text-muted); }
.ww-fonts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.ww-fonts label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; }
.ww-fonts select { font: inherit; font-weight: 400; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; }
.ww-fonts p { grid-column: 1 / -1; }
.ww-fp-field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; }
.ww-fp { position: relative; font-weight: 400; }
.ww-fp-btn { width: 100%; display: flex; align-items: center; gap: 8px; font: inherit; font-size: 18px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; text-align: left; }
.ww-fp-btn::after { content: "▾"; font-size: 12px; color: #71717a; margin-left: auto; }
.ww-fp-pop { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 380px; overflow-y: auto; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.14); padding: 4px; }
.ww-fp-pop[hidden] { display: none; }
.ww-fp-cat { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #71717a; padding: 8px 10px 2px; }
.ww-fp-it { display: block; width: 100%; text-align: left; font: inherit; background: none; border: 0; border-radius: 6px; padding: 6px 10px; cursor: pointer; }
.ww-fp-it:hover { background: #f4f4f5; }
.ww-fp-it.is-on { background: #fef3c7; }
.ww-fp-s { display: block; font-size: 22px; line-height: 1.25; color: #18181b; }
.ww-fp-it small { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #71717a; }
.ww-cz { font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .04em; padding: 1px 5px; border-radius: 4px; background: #dcfce7; color: #15803d; }
.ww-cz.is-no { background: #fee2e2; color: #b91c1c; }
.ww-fp-btn .ww-cz { margin-left: 4px; }
@media (max-width: 760px) { .mb-fp-top, .ww-fonts { grid-template-columns: 1fr; } .mb-d-font span { font-size: 40px; } }

.mb-d-who { font-size: 13px; color: var(--text-soft); }
.mb-d-who p { display: flex; gap: 6px; align-items: flex-start; margin: 0 0 4px; }
.mb-d-who span { flex: none; margin-top: 2px; } .mb-d-who .is-like { color: #e11d48; }
.mb-badges em[title] { cursor: help; }

.mb-d-react .is-on[data-r="1"] { border-color: #e11d48; color: #e11d48; background: #fff1f2; }
.mb-d-react .is-on[data-r="-1"] { border-color: #18181b; color: #18181b; background: var(--bg-soft); }

/* úchyty na plátně nezávislé na zmenšení */
.mb-world .mb-h-size { width: calc(26px * var(--inv, 1)); height: calc(26px * var(--inv, 1)); border-bottom-right-radius: calc(12px * var(--inv, 1)); }
.mb-world .mb-h-rot { width: calc(28px * var(--inv, 1)); height: calc(28px * var(--inv, 1)); bottom: calc(8px * var(--inv, 1)); }
.mb-world .mb-h-rot svg { width: calc(13px * var(--inv, 1)); height: calc(13px * var(--inv, 1)); }
.mb-world .mb-quick { transform: scale(var(--inv, 1)); transform-origin: top right; } .mb-world .mb-badges { transform: scale(var(--inv, 1)); transform-origin: top left; }
.mb-world .mb-card:hover .mb-quick { transform: scale(var(--inv, 1)); }
.mb-world .mb-free:hover { outline: calc(2px * var(--inv, 1)) solid rgba(24,24,27,.5); }

/* ═══════════════ Chat ═══════════════ */
.ch { display: grid; grid-template-columns: 290px minmax(0, 1fr); height: calc(100vh - 150px); min-height: 520px; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.ch-side { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--line); background: var(--surface-2, #fbfaf7); }
.ch-side-top { display: flex; gap: 6px; padding: 12px; border-bottom: 1px solid var(--line); }
.ch-side-top input { flex: 1; min-width: 0; font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.ch-side-top .btn { font-size: 18px; line-height: 1; padding: 4px 11px; }
.ch-side-top .btn { flex: none; white-space: nowrap; }
.ch-side-top [data-ch-new] { font-size: 13px; font-weight: 600; padding: 6px 10px; }
.ch-side-top input { width: 0; flex-basis: 0; }
.ch-side, .ch-main { min-width: 0; }
.ch-list { flex: 1; overflow-y: auto; padding: 6px 8px 14px; }
.ch-grp { margin-top: 10px; }
.ch-grp-t { display: flex; justify-content: space-between; gap: 6px; padding: 4px 8px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.ch-grp-t small { font-weight: 500; letter-spacing: 0; text-transform: none; }
.ch-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 8px; border: 0; border-radius: 8px; background: none; font: inherit; font-size: 14px; color: var(--text-soft); text-align: left; cursor: pointer; }
.ch-item span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-item svg { flex: none; opacity: .7; }
.ch-item:hover { background: var(--bg-soft); color: var(--text); }
.ch-item.is-active { background: #18181b; color: #fff; } .ch-item.is-active svg { opacity: 1; }
.ch-item.is-unread { color: var(--text); font-weight: 600; }
/* šablony míst: karta s náhledem areálu */
.vt-card { display: flex; gap: 18px; align-items: flex-start; }
.vt-card .vt-body { flex: 1; min-width: 0; }
.vt-prev { flex: 0 0 220px; height: 160px; border: 1px solid #e5e5e7; border-radius: 10px; background: #fbfaf6; overflow: hidden; display: grid; place-items: center; }
.vt-prev svg { width: 100%; height: 100%; display: block; }
.vt-prev-s { flex-basis: 140px; height: 100px; }
.vt-prev[hidden] { display: none; }
.vt-none { font-size: 12px; color: #a1a1aa; text-align: center; line-height: 1.4; }
.vt-sys { align-items: center; padding: 12px 16px; }
.vt-mini { flex: 0 0 64px; height: 44px; border-radius: 6px; overflow: hidden; border: 1px solid #e5e5e7; background: #fbfaf6; }
.vt-mini svg { width: 100%; height: 100%; display: block; }
.vt-prev[data-venue-tpl-prev] { margin-top: 8px; width: 220px; height: 150px; flex: none; }
@media (max-width: 700px) { .vt-card { flex-direction: column; } .vt-prev { flex-basis: auto; width: 100%; } }
.ch-people { max-height: 260px; overflow-y: auto; border: 1px solid #e5e5e7; border-radius: 8px; padding: 4px 8px; }
.ch-people-g { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #71717a; margin: 8px 0 2px; }
.ch-person { display: flex; align-items: center; gap: 8px; padding: 5px 2px; font-size: 14px; cursor: pointer; }
.ch-person small { margin-left: auto; color: #71717a; font-size: 12px; }
.ch-people-hint { font-size: 12px; margin: 8px 0 4px; }
.ch-agency { padding: 0 10px 8px; }
.ch-agency select { width: 100%; padding: 7px 8px; border: 1px solid #e5e5e7; border-radius: 8px; font: inherit; font-size: 13px; background: #fff; }
.ch-cnt { flex: none; font-size: 11px; color: #a1a1aa; font-variant-numeric: tabular-nums; }
.ch-item.is-active .ch-cnt { color: rgba(255,255,255,.6); }
.ch-badge { flex: none; min-width: 20px; padding: 1px 6px; border-radius: 999px; background: #18181b; color: #fff; font-style: normal; font-size: 11px; font-weight: 600; text-align: center; }
.ch-item.is-active .ch-badge { background: #fff; color: #18181b; }
.ch-badge.is-at { background: #e11d48; }
.ch-empty-list { padding: 20px 10px; font-size: 13px; }

.ch-main { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.ch.is-drop .ch-main::after { content: 'Pusťte soubor – přiložíme ho ke zprávě'; position: absolute; inset: 8px; display: grid; place-items: center; border: 2px dashed #18181b; border-radius: 12px; background: rgba(255,255,255,.9); font-weight: 600; z-index: 5; }
.ch-head { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.ch-head-t { flex: 1; min-width: 0; }
.ch-head h2 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 17px; font-weight: 600; }
.ch-head p { margin: 2px 0 0; font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-back { display: none; border: 0; background: none; padding: 4px; cursor: pointer; color: var(--text); }
.ch-members { display: flex; } .ch-members .ch-av { width: 28px; height: 28px; margin-left: -6px; border: 2px solid #fff; font-size: 10px; }
.ch-pins { border-bottom: 1px solid var(--line); background: #fffbeb; font-size: 13px; }
.ch-pins summary { display: flex; align-items: center; gap: 6px; padding: 8px 18px; cursor: pointer; font-weight: 600; color: #92400e; list-style: none; }
.ch-pins summary::-webkit-details-marker { display: none; }
.ch-pins details[open] { max-height: 40vh; overflow-y: auto; padding-bottom: 6px; }
.ch-pin-it { display: block; width: calc(100% - 24px); margin: 0 12px 4px; padding: 7px 10px; border: 1px solid #fde68a; border-radius: 8px; background: #fff; font: inherit; font-size: 13px; text-align: left; cursor: pointer; color: var(--text); }

.ch-msgs { flex: 1; overflow-y: auto; padding: 10px 18px 16px; }
.ch-loading, .ch-empty { margin: auto; padding: 50px 20px; text-align: center; color: var(--text-muted); max-width: 460px; }
.ch-empty strong { color: var(--text); }
.ch-more { display: block; margin: 6px auto 10px; padding: 5px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: inherit; font-size: 12px; cursor: pointer; }
.ch-day, .ch-new { display: flex; align-items: center; gap: 10px; margin: 16px 0 8px; font-size: 12px; color: var(--text-muted); }
.ch-day::before, .ch-day::after, .ch-new::before, .ch-new::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.ch-day span { font-weight: 600; }
.ch-new { color: #e11d48; font-weight: 600; } .ch-new::before, .ch-new::after { background: #fecdd3; }
.ch-msg { position: relative; display: flex; gap: 10px; padding: 6px 8px; margin: 0 -8px; border-radius: 10px; }
.ch-msg.is-grouped { padding-top: 1px; padding-bottom: 1px; }
.ch-msg:hover { background: #fafaf9; }
.ch-msg.is-mention { background: #fff1f2; box-shadow: inset 3px 0 0 #e11d48; }
.ch-msg.is-pinned { box-shadow: inset 3px 0 0 #f59e0b; }
.ch-msg.is-editing { background: #eff6ff; box-shadow: inset 3px 0 0 #3b82f6; }
.ch-msg.is-flash { animation: chFlash 1.6s ease; }
@keyframes chFlash { 0%, 40% { background: #fef3c7; } 100% { background: transparent; } }
.ch-av { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #18181b; color: #fff; font-size: 12px; font-weight: 600; overflow: hidden; }
.ch-av img { width: 100%; height: 100%; object-fit: cover; }
.ch-av.is-ext { background: #e7d8c9; color: #6b4f37; } .ch-av.is-more { background: var(--bg-soft); color: var(--text-soft); }
.ch-time-side { flex: none; width: 34px; padding-top: 3px; font-size: 10px; color: transparent; text-align: center; }
.ch-msg:hover .ch-time-side { color: var(--text-muted); }
.ch-bubble { flex: 1; min-width: 0; }
.ch-meta { display: flex; align-items: baseline; gap: 7px; font-size: 14px; }
.ch-meta small { font-size: 11px; color: var(--text-muted); }
.ch-role { font-style: normal; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; padding: 1px 6px; border-radius: 999px; background: #f5ede4; color: #8a6a4d; }
.ch-pinmark { color: #d97706; }
.ch-text { font-size: 14px; line-height: 1.5; color: var(--text); overflow-wrap: anywhere; }
.ch-text a { color: #2563eb; }
.ch-edited { color: var(--text-muted); font-size: 11px; }
.ch-msg.is-deleted .ch-text { color: var(--text-muted); }
.ch-at { padding: 0 4px; border-radius: 4px; background: #e0e7ff; color: #3730a3; font-weight: 600; white-space: nowrap; }
.ch-at.is-me { background: #ffe4e6; color: #be123c; }
.ch-quote { display: block; margin: 2px 0 4px; padding: 2px 10px; border-left: 3px solid var(--line-strong); color: var(--text-soft); font-size: 13px; }
.ch-task { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 1px 8px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--text) !important; font-size: 13px; text-decoration: none; vertical-align: middle; }
.ch-task b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-task small { color: var(--text-muted); }
.ch-task.is-done { color: var(--text-muted) !important; } .ch-task.is-done b { text-decoration: line-through; } .ch-task.is-done svg { color: #16a34a; }
a.ch-task:hover { border-color: #18181b; }
.ch-task.is-gone { color: var(--text-muted) !important; font-style: italic; }
.ch-linked { margin-top: 5px; font-size: 12px; color: var(--text-muted); }
.ch-img { display: inline-block; margin-top: 6px; } .ch-img img { max-width: min(360px, 100%); max-height: 280px; border-radius: 10px; border: 1px solid var(--line); display: block; }
.ch-file { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--text); text-decoration: none; max-width: 100%; }
.ch-file span { display: flex; flex-direction: column; min-width: 0; } .ch-file b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ch-file small { font-size: 11px; color: var(--text-muted); }
.ch-file:hover { border-color: #18181b; }
.ch-acts { position: absolute; right: 8px; top: -14px; display: none; gap: 2px; padding: 3px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.08); z-index: 2; }
.ch-msg:hover .ch-acts { display: flex; }
.ch-acts button { width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 6px; background: none; color: var(--text-soft); cursor: pointer; }
.ch-acts button:hover { background: var(--bg-soft); color: var(--text); }
.ch-acts [data-a="del"]:hover { color: #b91c1c; }

.ch-compose { padding: 10px 14px 12px; border-top: 1px solid var(--line); }
.ch-compose.is-editing { background: #eff6ff; }
.ch-ta-wrap { position: relative; }
.ch-compose textarea { display: block; width: 100%; resize: none; font: inherit; font-size: 14px; line-height: 1.45; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; max-height: 220px; }
.ch-compose textarea:focus { outline: none; border-color: #18181b; }
.ch-tools { display: flex; align-items: center; gap: 4px; margin-top: 6px; }
.ch-tool { width: 32px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 7px; background: none; color: var(--text-soft); font: 600 15px Inter, sans-serif; cursor: pointer; }
.ch-tool:hover { background: var(--bg-soft); color: var(--text); }
.ch-tool[hidden] { display: none; }
.ch-emo-wrap { position: relative; }
.ch-emo { position: absolute; bottom: 36px; left: 0; z-index: 30; width: 296px; max-height: 220px; overflow-y: auto; display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.ch-emo[hidden] { display: none; }
.ch-emo button { border: 0; background: none; font-size: 20px; line-height: 1; padding: 5px 0; border-radius: 6px; cursor: pointer; }
.ch-emo button:hover { background: var(--bg-soft); }
.ch-hint { flex: 1; font-size: 11px; color: var(--text-muted); padding-left: 6px; }
.ch-attach { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); font-size: 13px; }
.ch-attach img { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; }
.ch-attach span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-attach button { border: 0; background: none; cursor: pointer; color: var(--text-soft); }
.ch-suggest { position: absolute; left: 0; bottom: calc(100% + 6px); width: min(360px, 100%); max-height: 300px; overflow-y: auto; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 40px rgba(0,0,0,.14); padding: 4px; z-index: 10; }
.ch-sug-h { padding: 6px 8px 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); }
.ch-sug-it { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border: 0; border-radius: 7px; background: none; font: inherit; font-size: 14px; text-align: left; cursor: pointer; color: var(--text); }
.ch-sug-it .ch-av { flex: none; width: 26px; height: 26px; font-size: 10px; }
.ch-sug-it > span:not(.ch-av) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-sug-it small { color: var(--text-muted); font-size: 11px; }
.ch-sug-it.is-on { background: var(--bg-soft); }
.ch-sug-empty { padding: 10px; font-size: 13px; color: var(--text-muted); }
.ch-ro { padding: 14px; text-align: center; font-size: 13px; color: var(--text-muted); border-top: 1px solid var(--line); }

/* úkol – zmínky v chatu */
.te-chat { margin-top: 16px; }
.te-chat-h { margin: 0 0 10px; font-size: 15px; }
.te-chat-it { display: block; padding: 9px 12px; margin-bottom: 6px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); text-decoration: none; }
.te-chat-it:hover { border-color: #18181b; }
.te-chat-it span { font-size: 12px; color: var(--text-muted); } .te-chat-it span b { color: var(--text); }
.te-chat-it p { margin: 3px 0 0; font-size: 14px; }

@media (max-width: 760px) {
    .ch { grid-template-columns: 1fr; height: calc(100vh - 120px); }
    .ch-side { border-right: 0; }
    .ch-main { display: none; }
    .ch.is-conv .ch-side { display: none; } .ch.is-conv .ch-main { display: flex; }
    .ch-back { display: block; }
    .ch-members, .ch-hint { display: none; }
    .ch-acts { display: flex; position: static; margin-left: auto; border: 0; box-shadow: none; background: none; align-self: flex-start; }
    .ch-msg:not(:hover) .ch-acts { opacity: .5; }
}
.nav-badge.is-at { background: #e11d48; color: #fff; }

/* chat – upozornění */
.ch-bell { padding: 4px 9px; }
.ch-bell.is-on { color: #16a34a; border-color: #bbf7d0; background: #f0fdf4; }
.ch-push-warn { margin: 6px 0 0; padding: 10px 12px; border-radius: 10px; background: #fffbeb; border: 1px solid #fde68a; font-size: 13px; color: #92400e; }
.mb-share-modes input:disabled + span { opacity: .45; }

/* moodboard – šablony a sdílení v aplikaci */
.mb-tpls { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 14px; }
.mb-tpl { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: left; font: inherit; cursor: pointer; color: var(--text); }
.mb-tpl:hover { border-color: #18181b; box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.mb-tpl small { font-size: 12px; color: var(--text-muted); }
.mb-aud { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 4px 0; }
.mb-aud em { font-style: normal; font-size: 11px; padding: 1px 7px; border-radius: 999px; background: #fdf2f8; color: #9d174d; }
.mb-aud em.is-sup { background: #ecfdf5; color: #047857; } .mb-aud em.is-team { background: var(--bg-soft); color: var(--text-soft); }
.mb-share-h { margin: 14px 0 4px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-soft); }
.mb-aud-list { display: grid; gap: 6px; max-height: 34vh; overflow-y: auto; }
.mb-aud-list .tpl-check { margin: 0; }
.mb-aud-none { font-size: 13px; margin: 0; }
@media (max-width: 560px) { .mb-tpls { grid-template-columns: 1fr; } }

.mb-aud-list .tpl-check.is-off { opacity: .55; }
.mb-aud-list .mb-aud-none a { color: inherit; text-decoration: underline; }

/* designér místností – vlastní barva a popisky mimo objekt */
.rd-obj.has-color .rd-t-label, .rd-obj.has-color .rd-decor-name, .rd-obj.has-color .rd-decor-label, .rd-obj.has-color .rd-decor-svg { color: var(--obj-fg) !important; }
.rd-obj.has-color .rd-t-seats { color: var(--obj-fg); opacity: .75; }
.rd-obj.has-color .rd-decor-body::before { display: none; }
.rd-obj.label-out .rd-t-label, .rd-obj.label-out .rd-decor-label, .rd-obj.label-out .rd-decor-name { display: none; }
.rd-outlabel {
    position: absolute; z-index: 25; pointer-events: none; white-space: nowrap;
    padding: 2px 7px; border-radius: 6px; background: rgba(255,255,255,.94); color: #1f1d18;
    font-size: 11.5px; font-weight: 700; line-height: 1.3; box-shadow: 0 1px 4px rgba(0,0,0,.18); border: 1px solid rgba(0,0,0,.08);
}
.rd-obj.is-selected .rd-outlabel { background: #18181b; color: #fff; }
.rd-t-label { font-size: 12px; }
.rd-decor-name { text-shadow: none; }
.rd-colors { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-col { width: 26px; height: 26px; padding: 0; border-radius: 50%; border: 1.5px solid rgba(0,0,0,.15); cursor: pointer; display: grid; place-items: center; font-size: 12px; color: var(--text-soft); background: #fff; position: relative; }
.rd-col:hover { transform: scale(1.1); }
.rd-col.is-on { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #18181b; }
.rd-col.is-default { background: repeating-linear-gradient(45deg, #fff 0 4px, #f1f1f1 4px 8px); }
.rd-col-custom { background: conic-gradient(#f87171, #fbbf24, #34d399, #60a5fa, #a78bfa, #f87171); color: #fff; font-weight: 700; overflow: hidden; }
.rd-col-custom input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }

/* designér místa – popisek mimo malou / otočenou plochu či budovu */
.v-area.label-out, .v-bld.label-out { overflow: visible; }
.v-area.label-out .v-area-tag > span, .v-bld.label-out .v-bld-label { display: none; }
.v-area.label-out .v-area-tag { padding: 4px; }
.v-outlabel.is-bld { font-size: 12px; }
.v-bld-label { font-size: 13.5px; text-shadow: 0 0 3px #fff, 0 0 3px #fff; }
.rd-obj.label-out .rd-decor-body .rd-decor-svg { width: 70%; height: 70%; max-width: 46px; max-height: 46px; }

/* tisk areálu */
.v-print-nomap .vm-layer { display: none !important; }
.v-print-legend { display: none; }
@media print {
    .rd-print-root .v-print-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4mm; padding-top: 2mm; border-top: 1px solid #e5e5e7; font: 9pt Inter, sans-serif; color: #3f3f46; }
    .rd-print-root .rd-site { box-shadow: none !important; }
    .rd-print-root .rd-resize, .rd-print-root .v-hint { display: none !important; }
}

/* Log aplikace – právě přihlášení */
.al-online { margin-bottom: 16px; }
.al-online-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 10px; }
.al-online-h h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; }
.al-online-h h3 b { padding: 0 8px; border-radius: 999px; background: #dcfce7; color: #15803d; font-size: 13px; }
.al-dot { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 3px #dcfce7; animation: alPulse 2s infinite; }
@keyframes alPulse { 50% { box-shadow: 0 0 0 6px rgba(34,197,94,.15); } }
.al-online-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
.al-online-it { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; }
.al-online-it > div { flex: 1; min-width: 0; font-size: 14px; }
.al-online-it small { display: block; color: var(--text-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.al-online-it em { font-style: normal; font-size: 11px; color: var(--text-muted); white-space: nowrap; }
.al-online-it em.is-now { color: #15803d; font-weight: 600; }
.al-av { width: 34px; height: 34px; flex: none; font-size: 12px; }
.al-role { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; padding: 1px 6px; border-radius: 999px; background: var(--bg-soft); color: var(--text-soft); }

/* Uspořádání menu */
.mn-mode h3, .mn-grid h3 { margin: 0 0 8px; font-size: 15px; }
.mn-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mn-modes label { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.mn-modes label:has(input:checked) { border-color: #18181b; box-shadow: inset 0 0 0 1px #18181b; }
.mn-modes span { display: flex; flex-direction: column; } .mn-modes small { color: var(--text-muted); font-size: 12px; }
.mn-tabs { display: flex; gap: 6px; margin: 18px 0 10px; }
.mn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.mn-hint { margin: 0 0 10px; font-size: 12px; }
.mn-list { list-style: none; margin: 0; padding: 4px; min-height: 38px; border: 1px dashed transparent; border-radius: 10px; display: flex; flex-direction: column; gap: 4px; }
.mn-cat .mn-list { border-color: var(--line); background: var(--surface-2, #fbfaf7); }
.mn-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: grab; font-size: 14px; user-select: none; }
.mn-item svg { color: var(--text-muted); flex: none; }
.mn-item:hover { border-color: #18181b; }
.mn-item.is-drag { opacity: .4; }
.mn-cat { margin-bottom: 12px; }
.mn-cat-h { display: flex; gap: 6px; margin-bottom: 4px; }
.mn-cat-h input { flex: 1; font: 600 12px Inter, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--text-soft); padding: 5px 8px; border: 1px solid transparent; border-radius: 6px; background: none; }
.mn-cat-h input:hover, .mn-cat-h input:focus { border-color: var(--line); background: #fff; outline: none; }
.mn-del { border: 0; background: none; color: var(--text-muted); cursor: pointer; padding: 0 6px; }
.mn-del:hover { color: #b91c1c; }
.mn-note { font-size: 12px; margin: 12px 0 0; }
@media (max-width: 760px) { .mn-modes, .mn-grid { grid-template-columns: 1fr; } }
.mn-promo { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
/* Zájemci */
.ld-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ld-stat { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; }
.ld-stat b { font-size: 24px; font-weight: 600; } .ld-stat span { font-size: 12px; color: var(--text-muted); }
.ld-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }

/* Designér jen ke čtení (klient/dodavatel s právem Čtenář) */
.rd-readonly #venue .rd-tools, #venue.rd-readonly .rd-tools, #venue.rd-readonly .rd-tools-toggle,
.rd-readonly #vSave, .rd-readonly #rdSave, .rd-readonly #rdMultiBtn, .rd-readonly #rdDimAdd,
#rd.rd-readonly .rd-tab:not(:first-child), #rd.rd-readonly .rd-group:not([data-group="room"]),
#rd.rd-readonly [data-group="room"] .rd-block:not(:first-child) { display: none !important; }
.rd-readonly .rd-room { user-select: none; -webkit-user-select: none; }

/* Early-bird sleva (zájemci z landing page) */
.badge-eb { background: #f6efdd; color: #8a6d2f; border: 1px solid #e8d9b0; font-weight: 600; white-space: nowrap; }
.eb-note { margin: 14px 0 0; padding: 10px 14px; border-radius: 10px; background: #f6efdd; color: #5c4a1f; font-size: 14px; }
.ac-summary .is-over { color: #b91c1c; font-weight: 600; }
.ac-summary .is-over b { color: #b91c1c; }

/* Upozornění u hostů: jídlo, jmenovky */
.g-attn { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #f3d9a4; background: #fffaf0; border-radius: 12px; font-size: 14px; color: #5c4a1f; }
.g-attn p { margin: 4px 0; }
.g-attn-form { display: inline; margin-left: 6px; }

/* Ubytování: hosté stejné skupiny (rodina, pár) mají společnou barvu */
.ac-chip.has-grp { border-left: 4px solid var(--grp); background: color-mix(in srgb, var(--grp) 7%, #fff); }
.ac-chip.has-grp .ac-grp { color: var(--grp); font-weight: 600; }

/* Harmonogram: výběr více dodavatelů u položky */
.tl-sup-pick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.tl-sup-pick label { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--border, #e4e4e7); border-radius: 999px; font-size: 13px; cursor: pointer; }
.tl-sup-pick label:has(input:checked) { border-color: #18181b; background: #f4f4f5; font-weight: 600; }
.tl-sup-pick input { margin: 0; }
.tl-meta .tl-sup + .tl-sup { margin-left: 2px; }

/* Import hostů z Excelu */
.gi-steps { display: flex; gap: 8px; margin: 0 0 16px; font-size: 13px; color: #a1a1aa; }
.gi-steps span { padding: 6px 12px; border-radius: 999px; background: #f4f4f5; }
.gi-steps .is-on { background: #18181b; color: #fff; font-weight: 600; }
.gi-steps .is-done { background: #e4f3e6; color: #2f6b3a; }
.gi-start .card-title { margin-bottom: 12px; }
.gi-small { font-size: 13px; }
.gi-tips { margin: 14px 0 0; padding-left: 18px; font-size: 13px; color: #52525b; }
.gi-tips li { margin: 3px 0; }
.gi-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-bottom: 10px; }
.gi-inline { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.gi-table-wrap { padding: 0; overflow-x: auto; margin-bottom: 18px; }
.gi-table th { min-width: 170px; vertical-align: top; background: #fafafa; }
.gi-table th select { width: 100%; font-weight: 600; }
.gi-table th small { display: block; margin-top: 4px; font-weight: 400; color: #71717a; text-transform: none; letter-spacing: 0; }
.gi-table th.is-used { background: #f4efe3; }
.gi-table th.is-used select { border-color: #b8954a; }
.gi-table td { font-size: 13px; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; color: #a1a1aa; }
.gi-table td.is-used { color: #18181b; }
.gi-opts { margin-bottom: 18px; }
.gi-h { font-size: 16px; margin: 6px 0 10px; }
.gi-preview td { font-size: 13px; }
.gi-dup { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; white-space: nowrap; }
.gi-warn { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: #fffaf0; border: 1px solid #f3d9a4; color: #5c4a1f; font-size: 14px; }
.gi-actions { justify-content: space-between; }
.st-pickbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; padding: 8px 12px; border: 1px solid #e5e5e7; border-radius: 10px; background: #fff; font-size: 14px; position: sticky; top: 8px; z-index: 5; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.st-pickbar[hidden] { display: none; }

/* ── Plán prodeje (admin) ── */
.sp-link { display: flex; align-items: center; gap: 14px; padding: 14px 18px; margin-bottom: 18px; color: inherit; text-decoration: none; }
.sp-link:hover { border-color: #18181b; }
.sp-link > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.sp-link-ico { width: 38px; height: 38px; border-radius: 9px; display: grid; place-items: center; background: #f0f0f2; }
.sp-link-go { font-size: 13px; font-weight: 500; white-space: nowrap; }
.sp-page { --sp-pro: #18181b; --sp-light: #8b7cf6; --sp-diy: #e3a33b; --sp-all: #3f8f6b; }
.sp-t-pro { --c: var(--sp-pro); } .sp-t-light { --c: var(--sp-light); } .sp-t-diy { --c: var(--sp-diy); } .sp-t-all { --c: var(--sp-all); }
.sp-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.sp-year { display: flex; align-items: center; gap: 8px; }
.sp-year strong { font-size: 22px; font-weight: 500; min-width: 56px; text-align: center; }
.sp-head-actions { display: flex; gap: 8px; }
.sp-intro { font-size: 13px; margin: -4px 0 14px; }
.sp-pos { color: #15803d; } .sp-neg { color: #dc2626; } .sp-zero { color: var(--text-muted); }

.sp-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.sp-kpi { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; }
.sp-kpi-lbl { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.sp-kpi-lbl i, .sp-tc i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); display: inline-block; }
.sp-kpi-val { font-size: 28px; font-weight: 300; line-height: 1.1; }
.sp-kpi-val small { font-size: 15px; color: var(--text-muted); }
.sp-bar { height: 6px; border-radius: 99px; background: #f0f0f2; overflow: hidden; }
.sp-bar span { display: block; height: 100%; width: var(--w); background: var(--c); border-radius: 99px; animation: sp-w .9s cubic-bezier(.2,.8,.2,1) both; }
.sp-kpi-sub { font-size: 12px; color: var(--text-muted); }
.sp-kpi-money { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 17px; font-weight: 400; font-variant-numeric: tabular-nums; }
.sp-kpi-money small { font-size: 12px; color: var(--text-muted); }
.sp-bar-money span { background: repeating-linear-gradient(135deg, var(--c) 0 6px, color-mix(in srgb, var(--c) 78%, #fff) 6px 12px); animation-delay: .25s; }
@keyframes sp-w { from { width: 0; } }

.sp-charts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.sp-chart, .sp-cum { padding: 14px 16px 10px; }
.sp-chart-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; font-size: 14px; }
.sp-legend { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-muted); }
.sp-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; margin-left: 6px; }
.sp-lg-plan { background: color-mix(in srgb, var(--c, #18181b) 18%, #fff); border: 1px dashed var(--c, #18181b); }
.sp-lg-act { background: var(--c, #18181b); }
.sp-lg-line-plan { border-top: 2px dashed #a1a1aa; height: 0 !important; border-radius: 0 !important; }
.sp-lg-line-act { border-top: 3px solid var(--sp-all); height: 0 !important; border-radius: 0 !important; }
.sp-cols { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; height: 150px; }
.sp-col { display: flex; flex-direction: column; min-width: 0; }
.sp-col-bars { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; border-bottom: 1px solid #e5e5e7; }
.sp-col-bars span { width: 42%; max-width: 14px; height: var(--h); border-radius: 3px 3px 0 0; transform-origin: bottom; animation: sp-grow .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i) * 45ms); position: relative; }
.sp-b-plan { background: color-mix(in srgb, var(--c) 16%, #fff); outline: 1px dashed color-mix(in srgb, var(--c) 55%, #fff); outline-offset: -1px; }
.sp-b-act { background: var(--c); }
.sp-col.is-below .sp-b-act { background: #ef4444; }
.sp-col.is-future .sp-b-act { display: none; }
.sp-b-act em { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); font: 600 10px Inter, sans-serif; font-style: normal; color: var(--text); padding-bottom: 2px; }
.sp-col-m { text-align: center; font-size: 10px; color: var(--text-muted); padding-top: 4px; }
.sp-col.is-future .sp-col-m { opacity: .55; }
@keyframes sp-grow { from { transform: scaleY(0); } }

.sp-cum { margin-bottom: 8px; }
.sp-svg { width: 100%; height: auto; display: block; }
.sp-grid { stroke: #ececef; stroke-width: 1; }
.sp-ax { font: 10px Inter, sans-serif; fill: #a1a1aa; }
.sp-l-plan, .sp-l-act { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: sp-draw 1.4s ease-out forwards; }
.sp-l-plan { stroke: #a1a1aa; stroke-width: 2; }
.sp-l-act { stroke: var(--sp-all); stroke-width: 3; animation-delay: .25s; }
.sp-dot { fill: var(--sp-all); opacity: 0; animation: sp-fade .3s 1.5s forwards; }
@keyframes sp-draw { to { stroke-dashoffset: 0; } }
@keyframes sp-fade { to { opacity: 1; } }

.sp-table-card { padding: 0; overflow-x: auto; }
.sp-table th small { display: block; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 10.5px; color: var(--text-muted); }
.sp-table th.sp-tc { white-space: nowrap; }
.sp-table td.sp-tc { white-space: nowrap; }
.sp-table input[type=number] { width: 62px; padding: 5px 6px; text-align: right; }
.sp-table input[type=text] { width: 100%; min-width: 180px; padding: 5px 8px; }
.sp-act, .sp-diff, .sp-sum { display: inline-block; min-width: 30px; text-align: right; font-variant-numeric: tabular-nums; font-size: 13px; }
.sp-sum { width: 62px; padding-right: 7px; }
.sp-diff { font-weight: 600; }
.sp-table tr.is-future td { color: var(--text-muted); }
.sp-table tr.is-now td { background: #fafaf5; }
.sp-table tfoot td { border-top: 2px solid var(--line); }
.sp-save { padding: 12px 16px; }
@media (max-width: 1100px) { .sp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sp-charts { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { .sp-page * { animation: none !important; stroke-dashoffset: 0 !important; opacity: 1 !important; } }
@media print {
    @page { size: A4 landscape; margin: 10mm; }
    body:has(.sp-page) .sidebar, body:has(.sp-page) .sidebar-expand, body:has(.sp-page) .topbar, body:has(.sp-page) .flash,
    body:has(.sp-page) .whfb-btn, body:has(.sp-page) .whfb-news, body:has(.sp-page) .wh-toasts,
    .sp-head-actions, .sp-year .btn, .sp-save { display: none !important; }
    body:has(.sp-page) .layout, body:has(.sp-page) .content, body:has(.sp-page) .page { display: block !important; padding: 0 !important; margin: 0 !important; max-width: none !important; }
    .sp-page * { animation: none !important; stroke-dashoffset: 0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .sp-dot { opacity: 1 !important; }
    .sp-page .card { box-shadow: none !important; break-inside: avoid; }
    .sp-kpis { grid-template-columns: repeat(4, 1fr); }
    .sp-charts { grid-template-columns: repeat(3, 1fr); }
    .sp-table input { border: 0 !important; background: none !important; padding: 0 !important; }
    .sp-table { font-size: 11px; }
    .sp-table-card { break-before: page; }
}

/* návod: aplikace na ploše + upozornění */
.ch-push-guide { margin: .8rem 0 0; border: 1px solid var(--color-border, #e5e5e5); border-radius: 10px; padding: .6rem .8rem; font-size: .85rem; }
.ch-push-guide summary { cursor: pointer; font-weight: 600; }
.ch-push-guide h4 { margin: .9rem 0 .3rem; font-size: .85rem; }
.ch-push-guide ol { margin: 0; padding-left: 1.2rem; }
.ch-push-guide li { margin: .15rem 0; }
.ch-push-guide p { margin: .8rem 0 0; font-size: .8rem; }

/* ── Návštěvnost webu ── */
.vs-bar { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: space-between; margin-bottom: 1rem; }
.vs-tabs { display: flex; gap: .3rem; flex-wrap: wrap; }
.vs-src { list-style: none; margin: 0; padding: 0; }
.vs-src a { display: grid; grid-template-columns: 8.5rem 1fr 5.5rem; gap: .7rem; align-items: center; padding: .45rem .3rem; border-radius: 8px; color: inherit; text-decoration: none; }
.vs-src a:hover, .vs-src .is-on a { background: rgba(0,0,0,.04); }
.vs-src-bar { height: 8px; background: rgba(0,0,0,.06); border-radius: 99px; overflow: hidden; }
.vs-src-bar i { display: block; height: 100%; background: #b8954a; border-radius: inherit; }
.vs-src-n { text-align: right; } .vs-src-n small { color: #71717a; }
.vs-days { display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 2px; height: 140px; align-items: end; }
.vs-days span { height: 100%; display: flex; align-items: flex-end; }
.vs-days i { display: block; width: 100%; min-height: 2px; background: #18181b; border-radius: 3px 3px 0 0; }
.vs-days-axis { display: flex; justify-content: space-between; font-size: .75rem; color: #71717a; margin-top: .4rem; }
.vs-note { font-size: .8rem; margin-top: .8rem; }
@media (max-width: 600px) { .vs-src a { grid-template-columns: 6.5rem 1fr 4.5rem; } }

/* ── Kontrola systému ── */
.sc-hero { display: flex; gap: 1.6rem; align-items: center; margin-bottom: 1.2rem; }
.sc-hero-txt { flex: 1; min-width: 0; }
.sc-hero-txt h2 { margin: 0 0 .3rem; }
.sc-ring { position: relative; width: 112px; height: 112px; flex: none; }
.sc-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.sc-ring circle { fill: none; stroke-width: 9; }
.sc-ring-bg { stroke: rgba(0,0,0,.07); }
.sc-ring-fg { stroke: #18181b; stroke-linecap: round; transition: stroke-dashoffset .35s ease, stroke .3s; }
.sc-ring.is-ok .sc-ring-fg { stroke: #16a34a; } .sc-ring.is-warn .sc-ring-fg { stroke: #d97706; } .sc-ring.is-err .sc-ring-fg { stroke: #dc2626; }
.sc-ring-num { position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.35rem; font-weight: 600; }
.sc-ring.is-ok .sc-ring-num { color: #16a34a; font-size: 2rem; animation: sc-pop .4s ease; } .sc-ring.is-warn .sc-ring-num { color: #d97706; font-size: 2rem; animation: sc-pop .4s ease; } .sc-ring.is-err .sc-ring-num { color: #dc2626; font-size: 2rem; animation: sc-pop .4s ease; }
.sc.is-running .sc-ring { animation: sc-breath 1.6s ease-in-out infinite; }
.sc-actions { display: flex; gap: 1rem; align-items: center; margin-top: .9rem; flex-wrap: wrap; }
.sc-only { display: flex; gap: .4rem; align-items: center; font-size: .9rem; cursor: pointer; }
.sc-sum { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .6rem; }
.sc-pill { padding: .2rem .65rem; border-radius: 99px; font-size: .8rem; background: rgba(0,0,0,.05); animation: sc-in .3s ease both; }
.sc-pill.is-ok { background: #dcfce7; color: #166534; } .sc-pill.is-info { background: #e0f2fe; color: #075985; }
.sc-pill.is-warn { background: #fef3c7; color: #92400e; } .sc-pill.is-err { background: #fee2e2; color: #991b1b; }
.sc-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 1rem; align-items: start; }
.sc-group { padding: 1rem 1.1rem; }
.sc-group ul { list-style: none; margin: 0; padding: 0; }
.sc-gt { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 .5rem; font-size: 1rem; }
.sc-gt small { font-weight: 400; font-size: .78rem; color: #16a34a; } .sc-group.has-bad .sc-gt small { color: #b45309; }
.sc-item { display: grid; grid-template-columns: 26px 1fr auto; gap: .7rem; align-items: start; padding: .55rem .2rem; border-top: 1px solid rgba(0,0,0,.06); animation: sc-in .35s ease both; animation-delay: var(--d, 0ms); transition: background .3s; }
.sc-item:first-child { border-top: 0; }
.sc-item b { display: block; font-weight: 600; font-size: .92rem; }
.sc-msg { display: block; font-size: .83rem; color: #52525b; }
.sc-ms { font-size: .72rem; color: #a1a1aa; white-space: nowrap; padding-top: .15rem; }
.sc-ico { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .75rem; font-weight: 700; color: #fff; background: rgba(0,0,0,.08); margin-top: 1px; }
.sc-item.is-wait { opacity: .45; }
.sc-item.is-run { background: rgba(184,149,74,.08); border-radius: 8px; }
.sc-item.is-run .sc-ico { background: none; border: 2.5px solid rgba(0,0,0,.1); border-top-color: #18181b; animation: sc-spin .7s linear infinite; }
.sc-item.is-done .sc-ico { animation: sc-pop .35s ease; }
.sc-item.is-ok .sc-ico { background: #16a34a; } .sc-item.is-ok .sc-ico::before { content: '✓'; }
.sc-item.is-info .sc-ico { background: #0284c7; } .sc-item.is-info .sc-ico::before { content: 'i'; }
.sc-item.is-warn .sc-ico { background: #d97706; } .sc-item.is-warn .sc-ico::before { content: '!'; }
.sc-item.is-err .sc-ico { background: #dc2626; } .sc-item.is-err .sc-ico::before { content: '✕'; }
.sc-item.is-err .sc-msg { color: #b91c1c; } .sc-item.is-warn .sc-msg { color: #92400e; }
.sc-det { margin-top: .35rem; font-size: .8rem; }
.sc-det summary { cursor: pointer; color: #71717a; }
.sc-det ul { margin: .3rem 0 0 1rem !important; padding: 0 !important; list-style: disc !important; color: #3f3f46; }
.sc-only-bad .sc-item.is-ok, .sc-only-bad .sc-item.is-info { display: none; }
.sc-only-bad .sc-group:not(.has-bad) ul { display: none; }
@keyframes sc-spin { to { transform: rotate(360deg); } }
@keyframes sc-pop { 0% { transform: scale(.4); } 70% { transform: scale(1.15); } 100% { transform: scale(1); } }
@keyframes sc-in { from { opacity: 0; transform: translateY(6px); } }
@keyframes sc-breath { 50% { transform: scale(1.04); } }
@media (max-width: 600px) { .sc-hero { flex-direction: column; text-align: center; } .sc-actions { justify-content: center; } .sc-ring { width: 96px; height: 96px; } }
@media (prefers-reduced-motion: reduce) { .sc-item, .sc-pill, .sc-ring, .sc-ico { animation: none !important; } }
.sc-hist { padding: .4rem 1rem; }
.sc-run { border-top: 1px solid rgba(0,0,0,.06); }
.sc-run:first-child { border-top: 0; }
.sc-run summary { display: flex; gap: .8rem; align-items: center; padding: .7rem 0; cursor: pointer; list-style: none; flex-wrap: wrap; }
.sc-run summary::-webkit-details-marker { display: none; }
.sc-run-dot { width: 10px; height: 10px; border-radius: 50%; background: #16a34a; flex: none; }
.sc-run.is-warn .sc-run-dot { background: #d97706; } .sc-run.is-err .sc-run-dot { background: #dc2626; }
.sc-run-when { display: flex; flex-direction: column; min-width: 11rem; }
.sc-run-when small { color: #71717a; font-size: .78rem; }
.sc-run-pills { display: flex; gap: .3rem; flex-wrap: wrap; margin-left: auto; }
.sc-run-body { padding: 0 0 .9rem 1.6rem; font-size: .86rem; }
.sc-run-body > ul { margin: 0; padding-left: 1rem; }
.sc-run-body li.is-err > b { color: #b91c1c; } .sc-run-body li.is-warn > b { color: #92400e; }
.sc-run-body ul ul { color: #52525b; font-size: .8rem; }

/* ── Nastavení: nástroje + licence ── */
.st-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-bottom: 8px; }
.st-tool { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s, box-shadow .15s; }
.st-tool:hover { border-color: #18181b; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.06); }
.st-tool-ico { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: #f4f1ea; color: #8a6d2f; margin-bottom: 8px; }
.st-tool strong { font-size: 15px; }
.st-tool small { color: #71717a; font-size: 12.5px; line-height: 1.4; }
.st-tool-go { position: absolute; top: 18px; right: 18px; color: #a1a1aa; transition: transform .15s, color .15s; }
.st-tool:hover .st-tool-go { color: #18181b; transform: translateX(3px); }
.st-lic { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 20px; align-items: start; }
.st-lic .form-card { max-width: none; margin: 0; }
.st-lic .pricing-table input { width: 100%; max-width: 120px; }
@media (max-width: 900px) { .st-lic { grid-template-columns: 1fr; } }
[data-tpl-load] select { width: 100%; margin-bottom: 6px; }
[data-tpl-load] small { display: block; margin-bottom: 6px; }
.vt-warn { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.45; color: #92400e; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 9px 10px; margin: 4px 0 8px; }
.vt-warn svg { flex: none; color: #d97706; margin-top: 1px; }
.vt-check { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; margin: 0 0 10px; cursor: pointer; user-select: none; }
.vt-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vt-box { width: 18px; height: 18px; flex: none; border: 1.5px solid #a1a1aa; border-radius: 5px; background: #fff; display: grid; place-items: center; transition: background .15s, border-color .15s; }
.vt-box::after { content: ''; width: 9px; height: 5px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); opacity: 0; transition: opacity .15s; }
.vt-check:hover .vt-box { border-color: #18181b; }
.vt-check input:checked + .vt-box { background: #d97706; border-color: #d97706; }
.vt-check input:checked + .vt-box::after { opacity: 1; }
.vt-check input:focus-visible + .vt-box { outline: 2px solid #d97706; outline-offset: 2px; }
.org-search { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.org-search input { flex: 1; min-width: 200px; max-width: 360px; font: inherit; font-size: 14px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; }
.org-pager { display: flex; gap: 4px; flex-wrap: wrap; margin: 12px 0 4px; }

/* ── WedBot (PRO) ── */
.wb-fab { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 64px; height: 64px; padding: 0; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 10px 28px rgba(24,24,27,.18), 0 0 0 1px rgba(184,149,74,.35); cursor: pointer; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; animation: wb-in .5s ease .6s both; }
.wb-fab img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wb-fab:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 14px 34px rgba(24,24,27,.22), 0 0 0 2px #b8954a; }
.wb-fab.is-open { box-shadow: 0 0 0 2px #b8954a, 0 10px 28px rgba(24,24,27,.18); }
.wb-win { position: fixed; right: 22px; bottom: 98px; z-index: 901; width: min(360px, calc(100vw - 32px)); max-height: min(560px, calc(100vh - 130px)); display: flex; flex-direction: column; background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(24,24,27,.22); border: 1px solid var(--line); overflow: hidden; animation: wb-pop .25s ease; }
.wb-win[hidden] { display: none; }
.wb-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #18181b; color: #fff; }
.wb-head img { border-radius: 50%; background: #fff; }
.wb-head div { flex: 1; display: flex; flex-direction: column; line-height: 1.25; }
.wb-head small { color: #d6c09a; font-size: 11.5px; }
.wb-x { border: 0; background: none; color: #fff; font-size: 16px; cursor: pointer; opacity: .7; padding: 4px 6px; }
.wb-x:hover { opacity: 1; }
.wb-body { flex: 1; overflow: auto; padding: 18px 16px; background: #fff; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.wb-hero { width: 170px; height: 170px; object-fit: cover; cursor: pointer; border-radius: 12px; background: #fff; }
.wb-msg { align-self: stretch; background: #faf8f4; border: 1px solid #ece6d8; border-radius: 4px 14px 14px 14px; padding: 12px 14px; font-size: 14px; line-height: 1.5; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.wb-foot { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line); }
.wb-foot input { flex: 1; min-width: 0; font: inherit; font-size: 13px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #f4f4f5; }
.wb-foot button { border: 0; border-radius: 10px; width: 38px; background: #e4e4e7; color: #a1a1aa; }
@keyframes wb-in { from { opacity: 0; transform: translateY(16px) scale(.8); } }
@keyframes wb-pop { from { opacity: 0; transform: translateY(12px) scale(.97); } }
@keyframes wb-float { 50% { transform: translateY(-6px); } }
@media (max-width: 600px) { .wb-fab { right: 14px; bottom: 14px; width: 54px; height: 54px; } .wb-win { right: 16px; bottom: 80px; } }
@media print { .wb-fab, .wb-win { display: none !important; } }

/* ── Katalog dodavatelů a míst ── */
.cl-bar, .cl-intro-bar { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.cl-intro-bar p { margin: 0; color: #52525b; max-width: 620px; }
.cl-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.cl-filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cl-filter-wide { margin-bottom: 18px; }
.cl-filter select, .cl-filter input[type=search] { font: inherit; font-size: 13.5px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cl-filter input[type=search] { min-width: 200px; }
.cl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.cl-card { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; color: inherit; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.cl-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.08); border-color: #d6c09a; }
.cl-card-img { position: relative; aspect-ratio: 4 / 3; background: #f4f1ea; display: block; }
.cl-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cl-card-img .cl-status { position: absolute; top: 10px; left: 10px; }
.cl-card-body { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px 14px; }
.cl-card-body strong { font-size: 15px; }
.cl-card-cats { font-size: 13px; color: #3f3f46; }
.cl-card-reg { font-size: 12px; }
.cl-kind { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8a6d2f; font-weight: 600; }
.cl-status { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 99px; background: #fff; }
.cl-st-new { background: #fef3c7; color: #92400e; } .cl-st-approved { background: #dcfce7; color: #166534; } .cl-st-rejected { background: #fee2e2; color: #991b1b; }
.cl-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.cl-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; align-items: start; }
.cl-admin { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 8px; }
.cl-admin h3 { margin: 0 0 4px; font-size: 15px; }
.cl-admin form { display: flex; flex-direction: column; gap: 8px; }
.cl-hint { font-size: 12.5px; margin: 4px 0; }
.g-x-text { border: 0; background: none; color: #b91c1c; font-size: 12.5px; cursor: pointer; padding: 6px 0; text-align: left; }
/* galerie: titulní fotka 4:3 (stejný výřez jako karta), další fotky ve svém tvaru jako mozaika */
.cl-gallery { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 8px; align-items: start; margin-bottom: 18px; }
.cl-g-main { display: block; overflow: hidden; border-radius: 12px; background: #f4f1ea; aspect-ratio: 4 / 3; }
.cl-g-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cl-masonry { columns: 2; column-gap: 8px; }
.cl-masonry a { display: block; margin-bottom: 8px; break-inside: avoid; border-radius: 10px; overflow: hidden; background: #f4f1ea; }
.cl-masonry img { width: 100%; height: auto; display: block; transition: transform .3s; }
.cl-masonry a:hover img, .cl-g-main:hover img { transform: scale(1.03); }
.cl-g-main img { transition: transform .3s; }
.cl-gallery:not(:has(.cl-masonry)) { grid-template-columns: minmax(0, 560px); }
.cl-head { display: flex; gap: 14px; align-items: center; margin-bottom: 8px; }
.cl-logo { width: 64px; height: 64px; object-fit: contain; border-radius: 12px; border: 1px solid var(--line); background: #fff; padding: 4px; }
.cl-head h2 { margin: 2px 0; font-size: 24px; }
.cl-headline { margin: 0; color: #52525b; }
.cl-intro { font-size: 15px; margin: 10px 0 12px; }
.cl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.cl-tags span { font-size: 12.5px; padding: 4px 10px; border-radius: 99px; background: #f4f1ea; color: #6b5323; }
.cl-cols { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; border-top: 1px solid var(--line); padding-top: 16px; }
.cl-cols h3 { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #71717a; margin: 0 0 8px; }
.cl-cols h3 + * { margin-bottom: 18px; }
.cl-desc { line-height: 1.6; margin: 0 0 18px; }
.cl-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; font-size: 13.5px; margin: 0 0 18px; }
.cl-dl dt { color: #71717a; }
.cl-dl dd { margin: 0; font-weight: 500; }
.cl-side .cl-dl { grid-template-columns: 1fr; gap: 0; }
.cl-side .cl-dl dt { font-size: 12px; margin-top: 6px; }
.cl-links { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.cl-links a { font-size: 12.5px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; color: inherit; text-decoration: none; }
.cl-links a:hover { border-color: #18181b; }
@media (max-width: 1000px) { .cl-layout, .cl-cols { grid-template-columns: 1fr; } .cl-admin { position: static; } }
@media (max-width: 700px) { .cl-gallery { grid-template-columns: 1fr; } }
.cl-notify { display: flex; gap: 8px; align-items: center; font-size: 13px; cursor: pointer; }
.cl-g-main, .cl-masonry a { cursor: zoom-in; }
.cl-more { position: relative; }
.cl-more span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(24,24,27,.55); color: #fff; font-weight: 600; font-size: 18px; transition: background .2s; }
.cl-more:hover span { background: rgba(24,24,27,.68); }
.cl-lb { position: fixed; inset: 0; z-index: 1000; background: rgba(12,12,14,.92); display: flex; align-items: center; justify-content: center; padding: 56px 72px; animation: cl-lb-in .2s ease; }
.cl-lb[hidden] { display: none; }
.cl-lb img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.cl-lb-x { position: absolute; top: 14px; right: 18px; border: 0; background: none; color: #fff; font-size: 24px; cursor: pointer; opacity: .8; }
.cl-lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; transition: background .15s; }
.cl-lb-nav:hover { background: rgba(255,255,255,.24); }
.cl-lb-prev { left: 14px; } .cl-lb-next { right: 14px; }
.cl-lb-count { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); color: #d4d4d8; font-size: 13px; }
@keyframes cl-lb-in { from { opacity: 0; } }
@media (max-width: 600px) { .cl-lb { padding: 50px 8px; } .cl-lb-nav { width: 40px; height: 40px; background: rgba(0,0,0,.35); } }

/* Katalog – admin úprava registrace */
.ce-form { display: flex; flex-direction: column; gap: 16px; max-width: 980px; }
.ce-form h3 { margin: 0 0 14px; font-size: 16px; }
.ce-form h4 { margin: 18px 0 8px; font-size: 13px; color: var(--text-soft); font-weight: 500; }
.ce-chks { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px 14px; }
.ce-chk { display: flex; gap: 8px; align-items: center; font-size: 14px; cursor: pointer; }
.ce-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ce-photo { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.ce-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: var(--bg-soft, #f4f2ec); }
.ce-photo label { display: flex; gap: 6px; align-items: center; cursor: pointer; }
.ce-form [hidden] { display: none !important; }
@media (max-width: 700px) { .ce-form .form-grid { grid-template-columns: 1fr; } }
.ww-qr { display: flex; gap: 10px; align-items: center; margin-top: 10px; }
.ww-qr canvas { width: 72px; height: 72px; border: 1px solid #e5e5e7; border-radius: 6px; image-rendering: pixelated; }
.ww-qr small { font-size: 12px; max-width: 260px; }
.bk-run { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.br-new { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px !important; margin-bottom: 16px; }
.br-new select, .br-new input { border: 1px solid #e5e5e7; border-radius: 6px; padding: 8px 10px; font: inherit; font-size: 13px; background: #fff; }
.br-new select:focus, .br-new input:focus { outline: none; border-color: #18181b; }
.br-new input::placeholder { color: #a1a1aa; }
.br-new .btn { padding-top: 8px; padding-bottom: 8px; font-size: 13px; }
.br-new input { flex: 1 1 220px; min-width: 0; }
.br-ico-cell { width: 52px; padding-right: 0 !important; }
.br-ico { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 9px; vertical-align: middle; }
.br-ico-music { background: #f3e8ff; color: #7e22ce; }
.br-ico-host { background: #fef3c7; color: #b45309; }
.br-ico-photo { background: #dbeafe; color: #1d4ed8; }
.br-ico-free { background: #f0f0f2; color: #52525b; }
.br-access { margin-bottom: 14px; }
.br-access summary { cursor: pointer; font-weight: 500; }
.br-access-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px 16px; margin: 12px 0; }
.br-sec { margin-bottom: 14px; }
.br-sec-head { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.br-sec-head input { flex: 1; font-weight: 600; font-size: 15px; border: 1px solid transparent; border-radius: 6px; padding: 5px 8px; background: transparent; box-shadow: none; }
.br-sec-head input:hover, .br-sec-head input:focus { border-color: var(--line); background: #fff; outline: none; }
.br-sec-head h3 { margin: 0; font-size: 15px; font-weight: 600; }
.br-table { width: 100%; border-collapse: collapse; margin-bottom: 8px; }
.br-table th { text-align: left; font-size: 12px; font-weight: 500; color: var(--text-muted); padding: 4px 6px; }
.br-table td { padding: 3px 4px; border-top: 1px solid var(--line); vertical-align: top; }
.br-table input[type=text] { width: 100%; min-width: 0; border: 1px solid transparent; border-radius: 6px; padding: 6px 8px; font: inherit; background: transparent; }
.br-table input[type=text]:hover, .br-table input[type=text]:focus { border-color: var(--line); background: #fff; outline: none; }
.br-table td.br-tick { width: 34px; text-align: center; padding-top: 8px; }
.br-table td.br-tick input { width: 20px; height: 20px; }
.br-table td.br-ro { padding: 8px 6px; word-break: break-word; }
.br-table tr.is-done td.br-ro, .br-table tr.is-done input[type=text] { text-decoration: line-through; color: var(--text-muted); }
.br-table td.br-act { width: 86px; white-space: nowrap; text-align: right; }
.br-act button { border: 0; background: none; cursor: pointer; padding: 4px 6px; color: var(--text-muted); font: inherit; }
.br-act button:hover { color: var(--text); }
.br-bar { position: sticky; bottom: 0; z-index: 3; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 10px 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.br-bar span { font-size: 13px; color: var(--text-soft); }
.br-conflict { display: none; margin-bottom: 12px; }
.br-conflict.is-on { display: block; }
@media (max-width: 700px) {
    .br-table thead { display: none; }
    .br-table, .br-table tbody, .br-table tr, .br-table td { display: block; width: 100%; }
    .br-table tr { position: relative; padding: 6px 0; border-top: 1px solid var(--line); }
    .br-table td { border: 0; }
    .br-table td.br-tick { position: absolute; left: 0; top: 6px; width: 30px; }
    .br-table tr.has-tick td:not(.br-tick) { padding-left: 34px; }
    .br-table td.br-act { width: 100%; text-align: left; }
}

/* Seznam svateb: na tabletu a mobilu karty místo široké tabulky */
@media (max-width: 1400px) {
    .wl-table { display: block; overflow: visible; white-space: normal; }
    .wl-table thead { display: none; }
    .wl-table tbody { display: block; }
    .wl-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; padding: 16px 0; border-bottom: 1px solid var(--line); }
    .wl-table tbody tr:last-child { border-bottom: 0; }
    .wl-table tbody td { display: block; min-width: 0; padding: 0; border: 0; white-space: normal; overflow-wrap: anywhere; }
    .wl-table td:first-child, .wl-table td.cell-actions { grid-column: 1 / -1; }
    .wl-table td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
    .wl-table td.cell-actions { display: flex; flex-wrap: wrap; gap: 8px; text-align: left; }
    .wl-table td.cell-actions .btn, .wl-table td.cell-actions form { width: auto; margin: 0; }
}
@media (max-width: 480px) { .wl-table tr { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) and (max-width: 1400px) { .wl-table tr { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1401px) and (max-width: 1560px) {
    .wl-table .cell-actions { white-space: normal; width: 1%; }
    .wl-table .cell-actions .btn, .wl-table .cell-actions form { display: block; width: 100%; margin: 0 0 4px; }
}

/* Výběr souboru vzhledem jako tlačítko */
input[type="file"] { font: inherit; font-size: 13px; color: var(--text-soft); max-width: 100%; }
input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 14px; font: inherit; font-size: 13px; font-weight: 500; color: var(--text); background: transparent; border: 1.5px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; transition: background var(--dur) var(--ease); }
input[type="file"]::file-selector-button:hover { background: #f0f0f2; }
.ac-edit + .ac-edit, .ac-place-head .ac-edit { margin-left: 0; }
.ac-place-head h3 .ac-edit { margin-left: 4px; }
.sidebar .nav { min-height: 0; overflow-y: auto; }
.sidebar .nav-link { flex: none; }
.sidebar-foot { flex: none; }

/* Zájemci: horní přehled bez boxů (číslo, trend, poměr typů = filtr) */
.ld-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 280px); gap: 10px 40px; align-items: start; margin: 0 0 22px; }
.ld-hero-sum { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ld-hero-sum > b { font-size: 40px; line-height: 1; font-weight: 400; letter-spacing: -.04em; color: var(--text); }
.ld-hero-sum strong { display: block; font-size: 16px; font-weight: 500; color: var(--text); }
.ld-hero-sum span { display: block; margin-top: 2px; font-size: 13px; color: var(--text-muted); }
.ld-hero-sum span.is-up { color: #8a6d2f; font-weight: 500; }
.ld-trend-bars { display: flex; align-items: flex-end; gap: 4px; height: 36px; }
.ld-trend-bars i { flex: 1; min-width: 0; border-radius: 3px; background: var(--line-strong); transition: opacity var(--dur) var(--ease); }
.ld-trend-bars i.has { background: #c4a759; }
.ld-trend-bars:hover i:not(:hover) { opacity: .55; }
.ld-trend small { display: block; margin-top: 3px; font-size: 11px; color: var(--text-muted); text-align: right; }
.ld-mix { grid-column: 1 / -1; min-width: 0; }
.ld-ribbon { display: flex; gap: 3px; height: 8px; }
.ld-ribbon a { flex: 1 1 0; min-width: 6px; border-radius: 99px; transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.ld-ribbon a:hover { transform: scaleY(1.5); }
.ld-ribbon a.is-dim { opacity: .3; }
.ld-c0 { background: var(--ink); } .ld-c1 { background: #c4a759; } .ld-c2 { background: #d9c48d; } .ld-c3 { background: #a8a496; }
.ld-legend { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-top: 10px; }
.ld-legend a { display: inline-flex; align-items: center; gap: 6px; padding: 3px 0; font-size: 13px; color: var(--text-soft); text-decoration: none; border-bottom: 1.5px solid transparent; }
.ld-legend a:hover, .ld-legend a.is-active { color: var(--text); }
.ld-legend a.is-active { border-bottom-color: #c4a759; }
.ld-legend i { width: 8px; height: 8px; border-radius: 50%; }
.ld-legend b { font-weight: 600; color: var(--text); }
.ld-legend small { font-size: 11px; color: var(--text-muted); }
@media (max-width: 640px) { .ld-hero { grid-template-columns: minmax(0, 1fr); } }

/* Úkoly: varianta přehledu (zkouška, sdílí styly .ld-*) */
.ld-red { background: #dc2626; }
.ld-hero-sum span.is-late { color: #dc2626; font-weight: 500; }
.page > .ld-hero:first-child { margin-top: -14px; }

/* Harmonogram: barevné zvýraznění záchytných bodů */
.tl-row.tl-hl-yellow, .tl-hl-pick .tl-hl-yellow:has(input:checked) { background: #fdf0b8; }
.tl-row.tl-hl-green, .tl-hl-pick .tl-hl-green:has(input:checked) { background: #d5f0dd; }
.tl-row.tl-hl-red, .tl-hl-pick .tl-hl-red:has(input:checked) { background: #fad9d9; }
.tl-row[class*="tl-hl-"] .tl-body:hover { background: transparent; }
.tl-tools { display: flex; align-items: center; gap: 8px; }
.tl-marks { display: flex; gap: 5px; }
.tl-mark { width: 15px; height: 15px; padding: 0; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); cursor: pointer; }
.tl-mark-yellow { background: #fbe38a; } .tl-mark-green { background: #a9e0bb; } .tl-mark-red { background: #f4b4b4; }
.tl-row.tl-hl-yellow .tl-mark-yellow, .tl-row.tl-hl-green .tl-mark-green, .tl-row.tl-hl-red .tl-mark-red { border-color: #18181b; box-shadow: 0 0 0 1px #18181b; }

/* Harmonogram: časová osa podle dodavatelů */
.tg-switch { display: inline-flex; padding: 3px; gap: 2px; background: #f0f0f2; border-radius: var(--radius-sm); }
.tg-switch a { padding: 6px 12px; font-size: 13px; color: var(--text-soft); text-decoration: none; border-radius: 6px; white-space: nowrap; }
.tg-switch a.is-active { background: #fff; color: var(--text); font-weight: 500; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.tg-tools { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; flex-wrap: wrap; }
.tg-hint { font-size: 12px; }
.tg-zoom { margin-left: auto; display: flex; gap: 4px; }
.tg-zoom .btn { width: 36px; padding: 6px 0; justify-content: center; }
.tg { padding: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tg-in { width: max-content; min-width: 100%; }
.tg-row { display: flex; border-bottom: 1px solid #f0f0f2; }
.tg-row:last-child { border-bottom: 0; }
.tg-lane { position: sticky; left: 0; z-index: 3; flex: none; width: 150px; padding: 12px; font-size: 13px; font-weight: 500; background: #fff; border-right: 1px solid #e5e5e7; overflow-wrap: anywhere; }
.tg-axis .tg-lane { padding: 0; }
.tg-hours { display: flex; width: var(--tg-w); }
.tg-hours span { flex: none; width: var(--tg-hour); padding: 8px 0 6px 5px; font-size: 11px; color: var(--text-soft); border-left: 1px solid #e5e5e7; font-variant-numeric: tabular-nums; }
.tg-track { position: relative; flex: none; width: var(--tg-w); min-height: 52px; background-image: repeating-linear-gradient(90deg, #ececee 0 1px, transparent 1px var(--tg-hour)); }
.tg-bar { position: absolute; height: 39px; box-sizing: border-box; padding: 3px 9px; overflow: hidden; display: flex; flex-direction: column; justify-content: center; line-height: 1.25; font-size: 12px; color: var(--text); text-decoration: none; white-space: nowrap; background: #eeeef1; border: 1px solid #d4d4d8; border-radius: 6px; touch-action: pan-y; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
[data-edit="1"] .tg-bar { cursor: grab; }
.is-dragging .tg-bar { cursor: grabbing; }
.tg-bar:hover { z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,.14); }
.tg-bar strong { font-weight: 500; overflow: hidden; text-overflow: ellipsis; }
.tg-t { font-size: 10.5px; color: var(--text-soft); font-variant-numeric: tabular-nums; }
.tg-bar.no-end { border-right-style: dashed; }
.tg-bar.is-clash { border: 1.5px solid #dc2626; }
.tg-bar.tl-hl-yellow { background: #fdf0b8; } .tg-bar.tl-hl-green { background: #d5f0dd; } .tg-bar.tl-hl-red { background: #fad9d9; }
.tg-h { position: absolute; top: 0; bottom: 0; width: 10px; cursor: ew-resize; touch-action: none; }
.tg-h-l { left: 0; } .tg-h-r { right: 0; }
@media (max-width: 640px) { .tg-lane { width: 96px; padding: 10px 8px; font-size: 12px; } }

/* Harmonogram: vazby na časové ose */
.tg-in { position: relative; }
.tg-bar { z-index: 2; }
.tg-links { position: absolute; left: 0; top: 0; z-index: 1; pointer-events: none; }
.tg-link { fill: none; stroke: #71717a; stroke-width: 1.3; }
.tg-link.is-late { stroke: #dc2626; }
.tg-lane { z-index: 4; }
.tg-bar:hover { z-index: 3; }

/* Harmonogram: vazby se ukazují na vyžádání */
.tg-links { z-index: 3; }
.tg-bar:hover { z-index: 2; }
.tg-chain { position: absolute; top: 3px; right: 11px; min-width: 16px; height: 16px; padding: 0 3px; box-sizing: border-box; font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; color: #fff; background: #52525b; border-radius: 8px; cursor: pointer; }
.tg-chain.is-late { background: #dc2626; }
.tg.has-focus .tg-bar { opacity: .3; }
.tg.has-focus .tg-bar.is-focus { opacity: 1; }
.tg-link { stroke: #18181b; stroke-width: 1.6; }

/* Harmonogram: seznam s přetahováním a vazbami */
.tl-grip { position: absolute; left: 0; top: 0; bottom: 0; width: 18px; cursor: grab; touch-action: none; opacity: .45; background: radial-gradient(circle, #71717a 1.1px, transparent 1.3px) center / 5px 5px; background-clip: content-box; padding: 12px 4px; box-sizing: border-box; }
.tl-row:hover .tl-grip { opacity: 1; }
.tl.is-sorting { user-select: none; -webkit-user-select: none; }
.tl-row.is-moving { background: #fff; box-shadow: 0 3px 14px rgba(0,0,0,.18); z-index: 5; border-radius: 6px; }
.tl-chain { top: 10px; left: 103px; right: auto; z-index: 2; }
.tl.has-focus .tl-row { opacity: .3; }
.tl.has-focus .tl-row.is-focus { opacity: 1; }
@media (max-width: 640px) { .tl-chain { left: 79px; } }

/* Návrh místnosti: skryté židle (vidět jen u vybraného stolu, aby šly vrátit) */
.rd-chair.is-gone { display: none; }
.rd-obj.is-selected .rd-chair.is-gone { display: block; background: transparent; box-shadow: none; outline: 1.5px dashed #a1a1aa; outline-offset: -1px; }
.rd-obj.is-selected .rd-chair { cursor: pointer; }

/* WedBot: chat, kredit, denní výpis */
.wb-win { height: min(560px, calc(100vh - 130px)); position: fixed; }
.wb-body { align-items: stretch; padding: 14px; }
.wb-hero { align-self: center; flex: none; }
.wb-hero[hidden] { display: none; }
.wb-msg { font-size: 13.5px; max-width: 92%; align-self: flex-start; }
.wb-msg p { margin: 0 0 6px; } .wb-msg p:last-child { margin-bottom: 0; }
.wb-msg ul { margin: 4px 0 6px; padding-left: 18px; }
.wb-me { align-self: flex-end; background: #18181b; color: #fff; border-color: #18181b; border-radius: 14px 4px 14px 14px; white-space: pre-wrap; }
.wb-wait { display: flex; gap: 4px; padding: 14px; width: fit-content; }
.wb-wait i { width: 6px; height: 6px; border-radius: 50%; background: #b8954a; animation: wb-dot 1s infinite ease-in-out; }
.wb-wait i:nth-child(2) { animation-delay: .15s; } .wb-wait i:nth-child(3) { animation-delay: .3s; }
@keyframes wb-dot { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
.wb-credit { align-self: flex-start; padding: 0; border: 0; background: none; font: inherit; font-size: 11.5px; color: #d6c09a; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.wb-view { position: absolute; left: 0; right: 0; top: 60px; bottom: 0; z-index: 2; overflow: auto; padding: 14px 16px; background: #fff; }
.wb-view[hidden] { display: none; }
.wb-view h4 { margin: 14px 0 6px; font-size: 13px; }
.wb-view h4:first-of-type { margin-top: 8px; }
.wb-big { margin: 0; font-size: 26px; font-weight: 600; }
.wb-note { margin: 6px 0; font-size: 12.5px; color: var(--text-soft); line-height: 1.45; }
.wb-back { padding: 0; border: 0; background: none; font: inherit; font-size: 12.5px; color: var(--text-soft); cursor: pointer; }
.wb-packs { display: flex; gap: 6px; }
.wb-packs .btn { flex: 1; padding: 7px 4px; justify-content: center; }
.wb-qr { width: 170px; margin: 10px auto 4px; }
.wb-usage { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
.wb-usage li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px solid #f0f0f2; color: var(--text-soft); }
.wb-usage b { color: var(--text); font-weight: 500; white-space: nowrap; }
.wb-foot input { background: #fff; color: var(--text); }
.wb-foot button { background: #18181b; color: #fff; cursor: pointer; }
.wb-adm-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wb-adm-row form { margin: 0; }
.wb-adm-row input[type=number] { width: 90px; }

/* WedBot v administraci */
.wb-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.wb-figs .card { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; }
.wb-figs strong { font-size: 24px; font-weight: 400; color: var(--text); font-variant-numeric: tabular-nums; }
.wb-figs small { font-size: 12px; color: var(--text-soft); }
.wb-adm-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-bottom: 20px; }
.table-wrap { overflow-x: auto; }
.wb-adm-row { flex-wrap: nowrap; }
.wb-adm-row .tpl-check { margin: 0; white-space: nowrap; }
.wb-kc { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.wb-adm-row input[type=number] { width: 84px; padding: 7px 9px; font: inherit; font-size: 13px; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.wb-adm-row input[type=number]:focus { outline: none; border-color: #18181b; }
@media (max-width: 900px) { .wb-figs, .wb-adm-2 { grid-template-columns: minmax(0, 1fr); } }

/* WedBot: měsíční kredit v okně */
.wb-meter { display: block; width: 100%; flex: none; padding: 8px 14px 9px; border: 0; border-bottom: 1px solid #ece6d8; background: #faf8f4; font: inherit; text-align: left; cursor: pointer; }
.wb-meter[hidden] { display: none; }
.wb-meter:hover { background: #f6f1e6; }
.wb-meter-top { display: flex; justify-content: space-between; gap: 10px; font-size: 11.5px; line-height: 1.3; color: #6b6355; }
.wb-meter-top b { font-weight: 500; }
.wb-meter-top em { font-style: normal; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wb-meter-bar { display: block; height: 5px; margin-top: 6px; border-radius: 3px; background: #ece6d8; overflow: hidden; }
.wb-meter-bar i { display: block; height: 100%; width: 0; border-radius: 3px; background: #b8954a; transition: width .4s ease; }
.wb-meter.is-low .wb-meter-bar i { background: #dc2626; }
.wb-view { top: 110px; }

/* WedBot: sestavy */
.wb-view { padding: 12px 16px 16px; }
.wb-view h4 { margin-top: 12px; font-size: 14px; font-weight: 600; }
.wb-rep { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; margin-top: 8px; border: 1px solid var(--line); border-radius: 10px; }
.wb-rep.is-off { background: #fafafa; }
.wb-rep.is-off b { color: var(--text-soft); }
.wb-rep-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wb-rep-main b { font-size: 13px; font-weight: 600; }
.wb-rep-main small { font-size: 11.5px; color: var(--text-soft); }
.wb-rep-act { display: flex; align-items: center; gap: 8px; flex: none; }
.wb-link { padding: 0; border: 0; background: none; font: inherit; font-size: 12px; color: #8a6d2f; cursor: pointer; }
.wb-link:hover { text-decoration: underline; }
.wb-del { color: #dc2626; }
.wb-switch { position: relative; display: inline-block; width: 30px; height: 17px; flex: none; cursor: pointer; }
.wb-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.wb-switch i { position: absolute; inset: 0; border-radius: 9px; background: #d4d4d8; transition: background .15s; pointer-events: none; }
.wb-switch i::after { content: ''; position: absolute; left: 2px; top: 2px; width: 13px; height: 13px; border-radius: 50%; background: #fff; transition: transform .15s; }
.wb-switch input:checked + i { background: #b8954a; }
.wb-switch input:checked + i::after { transform: translateX(13px); }
.wb-switch input:disabled + i { opacity: .4; }
.wb-add { width: 100%; justify-content: center; margin-top: 12px; }
.wb-tpls { display: flex; flex-wrap: wrap; gap: 6px; }
.wb-tpl { padding: 5px 10px; border: 1px solid #ece6d8; border-radius: 999px; background: #faf8f4; font: inherit; font-size: 12px; color: #6b6355; cursor: pointer; }
.wb-tpl:hover { border-color: #b8954a; color: var(--text); }
.wb-repform .field { margin-bottom: 10px; }
.wb-repform .field span { font-size: 12.5px; }
.wb-repform .field[hidden], .wb-note[hidden] { display: none; }
.wb-repform input, .wb-repform select, .wb-repform textarea { font-size: 13px; }
.wb-row2 { display: flex; gap: 10px; }
.wb-row2 .field { flex: 1; min-width: 0; }
.wb-formact { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }

.wb-meter-low { display: block; margin-top: 5px; font-size: 11px; color: #dc2626; }
.wb-meter-low[hidden] { display: none; }

/* Plocha před budovami, např. obřadní místo v bezstřešní stodole */
.v-area.is-front { z-index: 12; }

/* WedBot v administraci: nejčastější dotazy */
.wb-topics { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.wb-topics li { display: grid; grid-template-columns: 220px minmax(0, 1fr) 40px; align-items: center; gap: 12px; font-size: 13px; }
.wb-topics i { display: block; height: 7px; border-radius: 4px; background: #f0f0f2; overflow: hidden; }
.wb-topics b { display: block; height: 100%; border-radius: 4px; background: #b8954a; }
.wb-topics em { font-style: normal; text-align: right; color: var(--text-soft); font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .wb-topics li { grid-template-columns: 130px minmax(0, 1fr) 30px; } }
