    /* Zone layout */
    .obsidian-zone-layout { display: flex; gap: 1.5rem; flex-wrap: wrap; }
    .obsidian-zone-layout.obsidian-layout-sl .obsidian-zone-sidebar,
    .obsidian-zone-layout.obsidian-layout-sr .obsidian-zone-sidebar { flex: 0 0 340px; max-width: 340px; }
    .obsidian-zone-layout .obsidian-zone-main { flex: 1; min-width: 0; }
    .obsidian-zone-layout:not(.obsidian-layout-sl):not(.obsidian-layout-sr) .obsidian-zone { flex: 1 1 100%; }

    /* Sticky sidebar — desktop only */
    @media (min-width: 992px) {
        .obsidian-zone-sidebar { position: sticky; top: 90px; align-self: flex-start; }
    }

    /* Zone drop area in edit mode */
    .obsidian-editing-mode .obsidian-zone {
        min-height: 100px;
        border: 2px dashed transparent;
        border-radius: var(--obsidian-radius);
        padding: .25rem;
        transition: border-color .2s;
    }
    .obsidian-editing-mode .obsidian-zone:empty,
    .obsidian-editing-mode .obsidian-zone:has(.obsidian-add-zone:only-child) {
        border-color: rgba(var(--obsidian-primary-rgb),.15);
    }

    @media (max-width: 991.98px) {
        .obsidian-zone-layout { flex-direction: column; }
        .obsidian-zone-layout.obsidian-layout-sl .obsidian-zone-sidebar,
        .obsidian-zone-layout.obsidian-layout-sr .obsidian-zone-sidebar {
            flex: 1 1 100%;
            max-width: 100%;
            position: static;
        }
        .obsidian-zone-sidebar { position: static !important; }
    }

    /* Vote card styles */
    .obsidian-vote-card { background: var(--obsidian-surface); border: 1px solid var(--obsidian-border); border-radius: var(--obsidian-radius); overflow: hidden; }
    .obsidian-vote-header { padding: .85rem 1.25rem; font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: .95rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: rgba(var(--obsidian-primary-rgb),.06); border-bottom: 1px solid var(--obsidian-border); display: flex; align-items: center; }
    .obsidian-vote-body { padding: 1.25rem; }
    .obsidian-vote-count { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 1.8rem; color: var(--obsidian-primary); line-height: 1; }
    .obsidian-vote-site-btn { display: flex; align-items: center; justify-content: space-between; padding: .7rem 1rem; background: var(--obsidian-surface-2); border: 1px solid var(--obsidian-border); border-radius: .5rem; color: #fff; font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; transition: all .2s; }
    .obsidian-vote-site-btn:hover { color: #fff; background: rgba(var(--obsidian-primary-rgb),.1); border-color: rgba(var(--obsidian-primary-rgb),.3); transform: translateX(4px); }
    .obsidian-vote-site-btn .vote-timer:not(:empty) { background: rgba(var(--obsidian-primary-rgb),.15); color: var(--obsidian-primary); font-size: .75rem; padding: .25rem .6rem; border-radius: .25rem; }
    .obsidian-vote-progress { position: relative; height: 28px; background: var(--obsidian-surface-2); border-radius: .5rem; overflow: hidden; }
    .obsidian-vote-progress-bar { height: 100%; background: linear-gradient(90deg, var(--obsidian-primary), var(--obsidian-accent)); border-radius: .5rem; transition: width .6s cubic-bezier(.4,0,.2,1); }
    .obsidian-vote-progress-text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: .8rem; color: #fff; }
    .obsidian-reward-row { display: flex; align-items: center; justify-content: space-between; padding: .5rem .75rem; background: var(--obsidian-surface-2); border-radius: .5rem; font-size: .9rem; }
    .obsidian-reward-img { width: 32px; height: 32px; object-fit: contain; border-radius: .25rem; }
    .obsidian-reward-icon { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: rgba(var(--obsidian-primary-rgb),.1); border-radius: .25rem; color: var(--obsidian-primary); }
    .obsidian-reward-chance { font-family: 'Rajdhani', sans-serif; font-weight: 700; color: var(--obsidian-primary); }
    .obsidian-vote-rank { display: flex; align-items: center; gap: .75rem; padding: .75rem 1.25rem; border-bottom: 1px solid var(--obsidian-border); transition: background .15s; }
    .obsidian-vote-rank:last-child { border-bottom: none; }
    .obsidian-vote-rank:hover { background: rgba(var(--obsidian-primary-rgb),.03); }
    .obsidian-vote-rank-top { background: rgba(var(--obsidian-primary-rgb),.03); }
    .obsidian-vote-rank-pos { width: 36px; text-align: center; font-family: 'Rajdhani', sans-serif; font-weight: 700; color: var(--obsidian-text-dim); flex-shrink: 0; }
    .obsidian-vote-rank-pos i { font-size: 1.1rem; }
    .obsidian-vote-rank-avatar { width: 36px; height: 36px; border-radius: .5rem; object-fit: cover; flex-shrink: 0; }
    .obsidian-vote-rank-name { flex: 1; font-weight: 600; color: #fff; }
    .obsidian-vote-rank-votes { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 1.1rem; color: var(--obsidian-primary); flex-shrink: 0; }
    .obsidian-vote-rank-votes::after { content: ' votes'; font-size: .7rem; font-weight: 600; color: var(--obsidian-text-dim); text-transform: uppercase; }
    #vote-card .spinner-parent { display: none; }
    #vote-card.voting .spinner-parent { position: absolute; display: flex; align-items: center; justify-content: center; inset: 0; background: rgba(14,18,33,.7); backdrop-filter: blur(6px); z-index: 10; border-radius: var(--obsidian-radius); }
