/* =========================================================
   EVENT360 – P7 Venue Diary  |  Premium Responsive CSS
   ========================================================= */

/* ── Root vars ── */
:root {
    --p7-primary:       #6c3baa;
    --p7-primary-light: #8b5cf6;
    --p7-primary-dark:  #4c2a7e;
    --p7-accent:        #f59e0b;
    --p7-success:       #10b981;
    --p7-error:         #ef4444;
    --p7-bg:            #f8f7ff;
    --p7-card-bg:       #ffffff;
    --p7-text:          #1e1b2e;
    --p7-text-muted:    #6b7280;
    --p7-border:        #e5e7eb;
    --p7-radius:        16px;
    --p7-radius-sm:     10px;
    --p7-shadow:        0 4px 24px rgba(108,59,170,.10);
    --p7-shadow-hover:  0 8px 32px rgba(108,59,170,.18);
    --p7-trans:         all .22s cubic-bezier(.4,0,.2,1);
}

/* ── Base wrap ── */
.p7-diary-wrap {
    font-family: 'Heebo', 'Segoe UI', sans-serif;
    direction: rtl;
    unicode-bidi: embed;
    max-width: 960px;
    margin: 0 auto;
    padding: 24px 16px 48px;
    color: var(--p7-text);
    background: var(--p7-bg);
    min-height: 60vh;
}

/* ── Back link ── */
.p7-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--p7-primary);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    margin-bottom: 24px;
    transition: var(--p7-trans);
}
.p7-back-link:hover { color: var(--p7-primary-dark); text-decoration: underline; }

/* ─────────────── VENUE LIST ─────────────── */

.p7-list-header {
    text-align: center;
    margin-bottom: 36px;
}
.p7-list-title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--p7-primary);
    margin: 0 0 8px;
}
.p7-list-subtitle {
    color: var(--p7-text-muted);
    font-size: 1rem;
    margin: 0;
}

.p7-venues-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}

.p7-venue-card {
    background: var(--p7-card-bg);
    border-radius: var(--p7-radius);
    box-shadow: var(--p7-shadow);
    border: 1px solid var(--p7-border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: var(--p7-trans);
}
.p7-venue-card:hover {
    box-shadow: var(--p7-shadow-hover);
    transform: translateY(-3px);
}

.p7-venue-card-body {
    padding: 28px 24px 20px;
    flex: 1;
    text-align: center;
}
.p7-venue-icon {
    font-size: 2.6rem;
    margin-bottom: 12px;
    line-height: 1;
}
.p7-venue-name {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--p7-text);
    margin: 0 0 12px;
}
.p7-venue-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}
.p7-meta-item {
    font-size: 13px;
    color: var(--p7-text-muted);
}

.p7-venue-stats {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--p7-border);
}
.p7-stat { text-align: center; }
.p7-stat-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--p7-primary);
    line-height: 1;
}
.p7-stat-label {
    display: block;
    font-size: 11px;
    color: var(--p7-text-muted);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.p7-venue-card-footer {
    padding: 16px 24px;
    border-top: 1px solid var(--p7-border);
    background: #faf9ff;
}

/* ─────────────── DIARY PAGE ─────────────── */

.p7-diary-hero {
    background: linear-gradient(135deg, var(--p7-primary) 0%, var(--p7-primary-light) 100%);
    border-radius: var(--p7-radius);
    padding: 36px 24px;
    text-align: center;
    color: #fff;
    margin-bottom: 28px;
    box-shadow: var(--p7-shadow);
}
.p7-diary-hero-icon { font-size: 3rem; margin-bottom: 10px; line-height: 1; }
.p7-diary-venue-name {
    font-size: 1.8rem;
    font-weight: 800;
    margin: 0 0 10px;
    color: #fff;
}
.p7-diary-venue-meta {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 14px;
    opacity: .9;
    color: #fff;
}

/* ── Steps bar ── */
.p7-steps-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 28px;
    padding: 0 8px;
}
.p7-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.p7-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--p7-border);
    color: var(--p7-text-muted);
    font-weight: 700;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--p7-trans);
    border: 2px solid transparent;
}
.p7-step-label {
    font-size: 12px;
    color: var(--p7-text-muted);
    font-weight: 600;
    white-space: nowrap;
    transition: var(--p7-trans);
}
.p7-step-line {
    flex: 1;
    height: 2px;
    background: var(--p7-border);
    min-width: 30px;
    margin: 0 4px;
    margin-bottom: 22px;
    transition: var(--p7-trans);
}
.p7-step.p7-step-active .p7-step-num {
    background: var(--p7-primary);
    color: #fff;
    border-color: var(--p7-primary-light);
    box-shadow: 0 0 0 4px rgba(108,59,170,.15);
}
.p7-step.p7-step-active .p7-step-label { color: var(--p7-primary); }
.p7-step.p7-step-done .p7-step-num {
    background: var(--p7-success);
    color: #fff;
    border-color: var(--p7-success);
}

/* ── Step cards ── */
.p7-step-card {
    background: var(--p7-card-bg);
    border-radius: var(--p7-radius);
    box-shadow: var(--p7-shadow);
    border: 1px solid var(--p7-border);
    padding: 28px 24px;
    margin-bottom: 20px;
}
.p7-step-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--p7-text);
    margin: 0 0 6px;
}
.p7-step-desc {
    color: var(--p7-text-muted);
    font-size: 14px;
    margin: 0 0 24px;
}

/* ── Calendar ── */
.p7-calendar-wrap {
    border: 1px solid var(--p7-border);
    border-radius: var(--p7-radius-sm);
    overflow: hidden;
    max-width: 360px;
    margin: 0 auto 20px;
}
.p7-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--p7-primary);
    padding: 12px 16px;
    color: #fff;
}
.p7-cal-nav-btn {
    background: rgba(255,255,255,.2);
    border: none;
    color: #fff;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--p7-trans);
}
.p7-cal-nav-btn:hover { background: rgba(255,255,255,.35); }
.p7-cal-title { font-weight: 700; font-size: 15px; }

.p7-cal-headers {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: #f3f0ff;
}
.p7-cal-hcell {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: var(--p7-primary);
    padding: 8px 4px;
    letter-spacing: .5px;
}

.p7-cal-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--p7-card-bg);
}
.p7-cal-day {
    text-align: center;
    padding: 10px 4px;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    margin: 2px;
    transition: var(--p7-trans);
    user-select: none;
    font-weight: 600;
}
.p7-cal-day:hover:not(.p7-cal-past):not(.p7-cal-empty) {
    background: #ede9fe;
    color: var(--p7-primary);
}
.p7-cal-day.p7-cal-today {
    background: #f3f0ff;
    color: var(--p7-primary);
    font-weight: 800;
}
.p7-cal-day.p7-cal-selected {
    background: var(--p7-primary) !important;
    color: #fff !important;
    border-radius: 50%;
}
.p7-cal-day.p7-cal-past {
    color: #d1d5db;
    cursor: not-allowed;
}
.p7-cal-empty { visibility: hidden; }

/* ── Selected date display ── */
.p7-selected-date-display {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--p7-radius-sm);
    padding: 12px 16px;
    color: #166534;
    font-weight: 700;
    max-width: 360px;
    margin: 0 auto;
}
.p7-selected-date-icon { font-size: 1.2rem; }

/* ── Form elements ── */
.p7-form-group { margin-bottom: 20px; }
.p7-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.p7-form-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--p7-text);
    margin-bottom: 8px;
}
.p7-required { color: var(--p7-error); }
.p7-input {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--p7-border);
    border-radius: var(--p7-radius-sm);
    font-size: 15px;
    font-family: inherit;
    color: var(--p7-text);
    background: #fff;
    transition: var(--p7-trans);
    box-sizing: border-box;
    direction: rtl;
}
.p7-input:focus {
    outline: none;
    border-color: var(--p7-primary);
    box-shadow: 0 0 0 3px rgba(108,59,170,.12);
}
.p7-input::placeholder { color: #b0b7c3; }

/* ── Event type grid ── */
.p7-event-type-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 10px;
}
.p7-hidden-radio { display: none; }
.p7-event-type-btn {
    cursor: pointer;
    display: block;
}
.p7-event-type-inner {
    display: block;
    text-align: center;
    padding: 10px 8px;
    border: 2px solid var(--p7-border);
    border-radius: var(--p7-radius-sm);
    font-size: 13px;
    font-weight: 600;
    color: var(--p7-text-muted);
    background: #fff;
    transition: var(--p7-trans);
    user-select: none;
}
.p7-event-type-btn:hover .p7-event-type-inner,
.p7-event-type-btn.p7-selected .p7-event-type-inner {
    border-color: var(--p7-primary);
    background: #f3f0ff;
    color: var(--p7-primary);
}
.p7-event-type-btn.p7-selected .p7-event-type-inner {
    background: var(--p7-primary);
    color: #fff;
    box-shadow: 0 2px 8px rgba(108,59,170,.25);
}

/* ── Date confirm block ── */
.p7-date-confirm {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--p7-radius-sm);
    padding: 12px 16px;
    color: #166534;
    font-weight: 700;
    font-size: 15px;
}
.p7-date-confirm-icon { font-size: 1.1rem; }

/* ── Buttons ── */
.p7-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: var(--p7-radius-sm);
    font-size: 15px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    border: 2px solid transparent;
    transition: var(--p7-trans);
    justify-content: center;
}
.p7-btn:disabled { opacity: .55; cursor: not-allowed; }
.p7-btn-full { width: 100%; box-sizing: border-box; }

.p7-btn-primary {
    background: linear-gradient(135deg, var(--p7-primary) 0%, var(--p7-primary-light) 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(108,59,170,.3);
}
.p7-btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px rgba(108,59,170,.42);
    transform: translateY(-1px);
    color: #fff;
    text-decoration: none;
}

.p7-btn-secondary {
    background: #fff;
    color: var(--p7-primary);
    border-color: var(--p7-primary);
}
.p7-btn-secondary:hover:not(:disabled) {
    background: #f3f0ff;
    color: var(--p7-primary);
    text-decoration: none;
}

/* ── Step nav ── */
.p7-step-nav { text-align: center; }
.p7-step-nav-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

/* ── Messages ── */
.p7-form-message {
    margin-top: 14px;
    padding: 12px 16px;
    border-radius: var(--p7-radius-sm);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}
.p7-msg-error   { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.p7-msg-success { background: #dcfce7; color: #166534; border: 1px solid #86efac; }

/* ── Success card ── */
.p7-success-card { text-align: center; padding: 48px 24px; }
.p7-success-icon {
    font-size: 4rem;
    margin-bottom: 16px;
    line-height: 1;
    display: block;
}
.p7-success-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--p7-primary);
    margin: 0 0 10px;
}
.p7-success-text {
    color: var(--p7-text-muted);
    font-size: 1rem;
    margin: 0 0 24px;
}
.p7-mt-4 { margin-top: 20px; }

/* ── Notices ── */
.p7-notice {
    padding: 14px 20px;
    border-radius: var(--p7-radius-sm);
    font-weight: 600;
    background: #fef9c3;
    color: #854d0e;
    border: 1px solid #fde68a;
    margin: 16px 0;
}
.p7-notice-error {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fca5a5;
}

/* ─────────────── MOBILE ─────────────── */
@media (max-width: 767px) {

    .p7-diary-wrap {
        padding: 16px 12px 40px;
    }

    .p7-list-title { font-size: 1.5rem; }

    .p7-venues-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .p7-diary-hero { padding: 28px 16px; }
    .p7-diary-venue-name { font-size: 1.4rem; }
    .p7-diary-venue-meta { flex-direction: column; gap: 6px; }

    .p7-steps-bar { gap: 0; }
    .p7-step-label { font-size: 10px; }
    .p7-step-num { width: 30px; height: 30px; font-size: 13px; }
    .p7-step-line { min-width: 16px; }

    .p7-step-card { padding: 20px 16px; }

    .p7-calendar-wrap { max-width: 100%; }
    .p7-cal-day { padding: 8px 2px; font-size: 13px; }

    .p7-form-row { grid-template-columns: 1fr; gap: 0; }

    .p7-event-type-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    .p7-event-type-inner { padding: 8px 4px; font-size: 12px; }

    .p7-step-nav-row {
        flex-direction: column-reverse;
        gap: 10px;
    }
    .p7-step-nav-row .p7-btn { width: 100%; }

    .p7-btn { padding: 13px 18px; font-size: 14px; }
}

/* ─────────────── TABLET ─────────────── */
@media (min-width: 768px) and (max-width: 1023px) {
    .p7-venues-grid { grid-template-columns: repeat(2, 1fr); }
    .p7-event-type-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ═══════════════════════════════════════════════════════
   V2 DIARY – BIG CALENDAR + MODAL POPUP
   ═══════════════════════════════════════════════════════ */

/* Wider wrap for v2 */
.p7-venue-diary-v2 {
    max-width: 1100px;
    padding: 20px 16px 40px;
}

/* ── Compact hero (replaces full hero in v2) ── */
.p7-diary-hero-sm {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: linear-gradient(135deg, var(--p7-primary) 0%, var(--p7-primary-light) 100%);
    border-radius: var(--p7-radius);
    padding: 20px 28px;
    margin-bottom: 24px;
    box-shadow: var(--p7-shadow);
}
.p7-diary-hs-inner {
    display: flex;
    align-items: center;
    gap: 16px;
}
.p7-diary-hs-icon { font-size: 2.2rem; line-height: 1; }
.p7-diary-hs-name { font-size: 1.4rem; font-weight: 800; color: #fff; margin: 0 0 4px; }
.p7-diary-hs-meta { font-size: 13px; color: rgba(255,255,255,.85); margin: 0; }
.p7-hs-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,.2);
    color: #fff;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 10px;
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: var(--p7-trans);
}
.p7-hs-back:hover { background: rgba(255,255,255,.35); color: #fff; text-decoration: none; }

/* ── Big Calendar ── */
.p7-big-calendar {
    background: var(--p7-card-bg);
    border-radius: var(--p7-radius);
    box-shadow: var(--p7-shadow);
    border: 1px solid var(--p7-border);
    overflow: hidden;
    margin-bottom: 10px;
}
.p7-big-cal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 28px;
    background: linear-gradient(135deg, var(--p7-primary) 0%, var(--p7-primary-light) 100%);
}
.p7-big-cal-month { font-size: 1.5rem; font-weight: 800; color: #fff; margin: 0; }
.p7-big-cal-nav-btn {
    background: rgba(255,255,255,.2);
    border: none;
    color: #fff;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--p7-trans);
}
.p7-big-cal-nav-btn:hover { background: rgba(255,255,255,.35); }

.p7-big-cal-headers {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: #f3f0ff;
    border-bottom: 1px solid var(--p7-border);
}
.p7-big-cal-hcell {
    text-align: center;
    padding: 14px 4px;
    font-size: 13px;
    font-weight: 800;
    color: var(--p7-primary);
    letter-spacing: .5px;
}

.p7-big-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}
.p7-big-cal-day {
    min-height: 110px;
    padding: 14px 10px 8px;
    border: 1px solid #f0eeff;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    transition: var(--p7-trans);
    position: relative;
    user-select: none;
}
.p7-big-cal-empty {
    min-height: 110px;
    border: 1px solid transparent;
    pointer-events: none;
}
.p7-big-cal-past {
    background: #fafafa;
    cursor: not-allowed;
}
.p7-big-cal-avail {
    cursor: pointer;
    background: #fff;
}
.p7-big-cal-avail:hover {
    background: #f3f0ff;
    border-color: var(--p7-primary-light);
    z-index: 1;
    box-shadow: inset 0 0 0 2px var(--p7-primary-light);
}
.p7-big-cal-avail:hover .p7-big-cal-cta {
    opacity: 1;
    transform: translateY(0);
}
.p7-big-cal-today { background: #faf5ff; }
.p7-big-cal-selected {
    background: var(--p7-primary) !important;
    border-color: var(--p7-primary) !important;
    z-index: 2;
}
.p7-big-cal-selected .p7-big-cal-num { color: #fff !important; }

.p7-big-cal-num {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--p7-text);
    line-height: 1;
}
.p7-big-cal-past .p7-big-cal-num { color: #c9cdd6; }
.p7-big-cal-today .p7-big-cal-num {
    background: var(--p7-primary);
    color: #fff;
    border-radius: 50%;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.p7-big-cal-cta {
    font-size: 10px;
    color: var(--p7-primary);
    font-weight: 700;
    opacity: 0;
    transform: translateY(4px);
    transition: var(--p7-trans);
    text-align: center;
    line-height: 1.2;
}

.p7-cal-hint {
    text-align: center;
    color: var(--p7-text-muted);
    font-size: 13px;
    margin: 8px 0 0;
    font-style: italic;
}

/* ── Modal ── */
.p7-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .62);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    padding: 16px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.p7-modal-card {
    background: #fff;
    border-radius: 20px;
    width: 100%;
    max-width: 520px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 32px 28px;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
    animation: p7ModalIn .25s cubic-bezier(.4, 0, .2, 1);
}
@keyframes p7ModalIn {
    from { opacity: 0; transform: scale(.95) translateY(20px); }
    to   { opacity: 1; transform: scale(1)  translateY(0); }
}
.p7-modal-close {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #f1f5f9;
    border: none;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    transition: var(--p7-trans);
}
.p7-modal-close:hover { background: #fee2e2; color: #dc2626; }

.p7-modal-date-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--p7-primary) 0%, var(--p7-primary-light) 100%);
    color: #fff;
    padding: 8px 20px;
    border-radius: 30px;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 16px;
}
.p7-modal-title { font-size: 1.3rem; font-weight: 800; color: var(--p7-text); margin: 0 0 4px; }
.p7-modal-sub   { color: var(--p7-text-muted); font-size: 14px; margin: 0 0 20px; }

/* Event-type grid inside modal (3 columns) */
.p7-event-type-grid-modal {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.p7-modal-success { text-align: center; padding: 24px 0 8px; }

/* ── Mobile overrides for v2 ── */
@media (max-width: 767px) {
    .p7-diary-hero-sm   { flex-direction: column; align-items: flex-start; padding: 16px 20px; gap: 10px; }
    .p7-hs-back         { align-self: stretch; text-align: center; justify-content: center; }
    .p7-big-cal-nav     { padding: 14px 16px; }
    .p7-big-cal-month   { font-size: 1.1rem; }
    .p7-big-cal-nav-btn { width: 36px; height: 36px; font-size: 15px; }
    .p7-big-cal-day     { min-height: 60px; padding: 8px 3px 4px; gap: 4px; }
    .p7-big-cal-empty   { min-height: 60px; }
    .p7-big-cal-num     { font-size: .9rem; }
    .p7-big-cal-today .p7-big-cal-num { width: 27px; height: 27px; font-size: .8rem; }
    .p7-big-cal-cta     { opacity: 1; transform: none; font-size: 8px; }
    .p7-big-cal-hcell   { font-size: 11px; padding: 10px 2px; }
    .p7-modal-card      { padding: 24px 18px; border-radius: 16px; }
    .p7-event-type-grid-modal { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════════
   V3 DIARY – FULL-VIEWPORT + PREMIUM MODAL + RUBIK (1.3.4)
   ═══════════════════════════════════════════════════════════ */

/* ── Rubik font for entire diary (matches the system) ── */
.p7-venue-diary-v2,
.p7-venue-diary-v2 *,
.p7-modal-overlay,
.p7-modal-overlay * {
    font-family: 'Rubik', 'Heebo', 'Segoe UI', Arial, sans-serif !important;
}

/* ── Wrap: no max-width, no padding – calendar owns the viewport ── */
.p7-venue-diary-v2 {
    max-width: 100% !important;
    padding: 0 !important;
    background: #fff !important;
    min-height: 100vh;
    border-radius: 0 !important;
}

/* ── Elegant centered hero – venue name only, no back button ── */
.p7-diary-hero-v2 {
    background: linear-gradient(160deg, #2d1363 0%, #5b2d9e 55%, #8b5cf6 100%);
    padding: 32px 32px 26px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(45, 19, 99, .3);
}
.p7-dh2-icon {
    font-size: 2.8rem;
    line-height: 1;
    margin-bottom: 10px;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,.25));
}
.p7-dh2-name {
    font-size: 2.4rem;
    font-weight: 900;
    color: #fff;
    margin: 0 0 8px;
    letter-spacing: -.5px;
    text-shadow: 0 2px 12px rgba(0,0,0,.2);
}
.p7-dh2-meta {
    font-size: 14px;
    color: rgba(255, 255, 255, .75);
    font-weight: 400;
    margin: 0;
    letter-spacing: .1px;
}

/* ── Calendar v2: no borders/shadow – merges with page ── */
.p7-big-cal-v2 {
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
}
.p7-big-cal-v2 .p7-big-cal-nav {
    background: linear-gradient(90deg, #f8f5ff, #ede9f7);
    padding: 14px 28px;
    border-bottom: 1px solid #e8e0ff;
}
.p7-big-cal-v2 .p7-big-cal-month {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--p7-primary-dark);
}
.p7-big-cal-v2 .p7-big-cal-nav-btn {
    background: #fff;
    border: 1.5px solid #d8d0f0;
    color: var(--p7-primary);
    box-shadow: 0 1px 4px rgba(108,59,170,.1);
    font-weight: 700;
}
.p7-big-cal-v2 .p7-big-cal-nav-btn:hover {
    background: var(--p7-primary);
    color: #fff;
    border-color: var(--p7-primary);
}
.p7-big-cal-v2 .p7-big-cal-headers {
    background: #f3f0ff;
    border-bottom: 2px solid #e8e0ff;
}
.p7-big-cal-v2 .p7-big-cal-hcell {
    font-size: 13px;
    font-weight: 800;
    color: var(--p7-primary-dark);
    padding: 12px 4px;
    letter-spacing: .3px;
}
.p7-big-cal-v2 .p7-big-cal-grid {
    /* Height is set dynamically by JS – grid-auto-rows:1fr divides it evenly */
    grid-auto-rows: 1fr;
    min-height: 300px;
}
.p7-big-cal-v2 .p7-big-cal-avail {
    background: #fff;
    transition: background .15s, box-shadow .15s;
}
.p7-big-cal-v2 .p7-big-cal-avail:hover {
    background: linear-gradient(135deg, #f3f0ff, #ede9fe);
    box-shadow: inset 0 0 0 2px var(--p7-primary);
    z-index: 1;
}
.p7-big-cal-v2 .p7-big-cal-avail:hover .p7-big-cal-cta { opacity: 1; transform: none; }
.p7-big-cal-v2 .p7-big-cal-num { font-size: 1.15rem; font-weight: 700; }
.p7-big-cal-v2 .p7-big-cal-today { background: #faf5ff; }
.p7-big-cal-v2 .p7-big-cal-today .p7-big-cal-num {
    background: var(--p7-primary);
    color: #fff;
    border-radius: 50%;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 10px rgba(108,59,170,.35);
}
.p7-big-cal-v2 .p7-big-cal-past { background: #fafafa; }
.p7-big-cal-v2 .p7-big-cal-past .p7-big-cal-num { color: #d4d4d4; }
.p7-big-cal-v2 .p7-big-cal-selected {
    background: linear-gradient(135deg, var(--p7-primary), var(--p7-primary-light)) !important;
}
.p7-big-cal-v2 .p7-big-cal-selected .p7-big-cal-num { color: #fff !important; font-weight: 800 !important; }
.p7-big-cal-v2 .p7-big-cal-cta {
    font-size: 10px;
    color: var(--p7-primary);
    font-weight: 700;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .15s, transform .15s;
}

.p7-venue-diary-v2 .p7-cal-hint {
    font-family: 'Rubik', sans-serif !important;
    font-size: 13px;
    color: #9ca3af;
    text-align: center;
    padding: 10px 0;
    letter-spacing: .1px;
}

/* ══════════════════════════════════════════
   PREMIUM MODAL v3
   ══════════════════════════════════════════ */

/* Override base modal card */
.p7-venue-diary-v2 ~ .p7-modal-overlay .p7-modal-card,
.p7-modal-overlay .p7-modal-card {
    border-radius: 24px !important;
    padding: 0 !important;
    overflow: hidden !important;
    max-width: 500px !important;
    box-shadow: 0 24px 80px rgba(45,19,99,.35) !important;
}

/* Modal close button – positioned over purple header */
.p7-modal-overlay .p7-modal-close {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 10;
    background: rgba(255,255,255,.18) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    backdrop-filter: blur(4px);
    transition: background .15s !important;
}
.p7-modal-overlay .p7-modal-close:hover {
    background: rgba(255,255,255,.32) !important;
    color: #fff !important;
}

/* Purple gradient date header inside modal */
.p7-modal-date-header {
    background: linear-gradient(160deg, #2d1363 0%, #5b2d9e 55%, #8b5cf6 100%);
    padding: 26px 28px 22px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.p7-modal-date-emoji { font-size: 2.2rem; line-height: 1; flex-shrink: 0; }
.p7-modal-date-weekday {
    font-size: 11px;
    color: rgba(255,255,255,.72);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: 4px;
}
.p7-modal-date-text {
    font-size: 1.25rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -.2px;
}

/* Modal body padding */
.p7-modal-body-wrap { padding: 22px 28px 26px; }

.p7-modal-title-v2 {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--p7-text);
    margin: 0 0 4px;
}
.p7-modal-sub-v2 {
    color: var(--p7-text-muted);
    font-size: 13px;
    margin: 0 0 20px;
}

/* Form inputs: override base for Rubik */
.p7-modal-body-wrap .p7-input {
    font-family: 'Rubik', sans-serif !important;
    border-radius: 12px;
    border: 1.5px solid #e2e8f0;
    background: #f8f9ff;
    font-size: 14px;
    padding: 12px 16px;
    transition: border-color .18s, box-shadow .18s;
}
.p7-modal-body-wrap .p7-input:focus {
    border-color: var(--p7-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(108,59,170,.1);
}
.p7-modal-body-wrap .p7-form-label {
    font-size: 13px;
    font-weight: 700;
    color: #374151;
    letter-spacing: .1px;
}

/* Notes textarea */
.p7-textarea {
    min-height: 78px;
    resize: vertical;
    line-height: 1.55;
}

/* Event-type buttons: more elegant in v3 */
.p7-modal-body-wrap .p7-event-type-inner {
    padding: 9px 6px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 10px;
    background: #f8f9ff;
    border-color: #e2e8f0;
    line-height: 1.3;
}
.p7-modal-body-wrap .p7-event-type-btn.p7-selected .p7-event-type-inner {
    background: linear-gradient(135deg, var(--p7-primary), var(--p7-primary-light));
    border-color: transparent;
    box-shadow: 0 3px 10px rgba(108,59,170,.3);
}

/* Divider between sections */
.p7-modal-body-wrap .p7-form-group + .p7-form-group { margin-top: 0; }

/* Premium send button */
.p7-btn-send-v2 {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 24px;
    background: linear-gradient(135deg, #3b1a6e 0%, #6c3baa 50%, #8b5cf6 100%);
    color: #fff;
    border: none;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    font-family: 'Rubik', sans-serif !important;
    cursor: pointer;
    box-shadow: 0 6px 24px rgba(59, 26, 110, .38);
    transition: transform .18s, box-shadow .18s;
    margin-top: 18px;
    letter-spacing: .2px;
}
.p7-btn-send-v2:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 10px 36px rgba(59, 26, 110, .48);
}
.p7-btn-send-v2:disabled { opacity: .52; cursor: not-allowed; transform: none; }

/* Success state inside modal */
.p7-modal-success {
    text-align: center;
    padding: 32px 28px !important;
}
.p7-modal-success .p7-success-title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--p7-primary);
    margin: 0 0 10px;
}
.p7-modal-success .p7-success-text {
    color: var(--p7-text-muted);
    font-size: .95rem;
    margin: 0 0 20px;
    line-height: 1.6;
}
.p7-modal-success .p7-btn {
    font-family: 'Rubik', sans-serif !important;
}

/* Error / success messages */
.p7-modal-body-wrap .p7-form-message {
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
}

/* ── Mobile v3 ── */
@media (max-width: 767px) {
    .p7-dh2-name       { font-size: 1.7rem; }
    .p7-dh2-icon       { font-size: 2.2rem; }
    .p7-diary-hero-v2  { padding: 24px 20px 20px; }
    .p7-big-cal-v2 .p7-big-cal-nav { padding: 12px 16px; }
    .p7-big-cal-v2 .p7-big-cal-month { font-size: 1.05rem; }
    .p7-big-cal-v2 .p7-big-cal-hcell { font-size: 11px; padding: 10px 2px; }
    .p7-big-cal-v2 .p7-big-cal-day   { padding: 8px 3px 4px; gap: 3px; }
    .p7-big-cal-v2 .p7-big-cal-num   { font-size: .88rem; }
    .p7-big-cal-v2 .p7-big-cal-today .p7-big-cal-num { width: 28px; height: 28px; font-size: .8rem; }
    .p7-big-cal-v2 .p7-big-cal-cta   { opacity: 1; transform: none; font-size: 8px; }
    .p7-modal-date-header { padding: 20px 20px 18px; }
    .p7-modal-body-wrap   { padding: 18px 20px 22px; }
    .p7-event-type-grid-modal { grid-template-columns: repeat(2, 1fr) !important; }
    .p7-btn-send-v2       { font-size: 15px; padding: 14px 20px; }
}

/* ══════════════════════════════════════════════════════
   V1.3.5 – Slim branded bar + checkerboard + booked cells
   ══════════════════════════════════════════════════════ */

/* ── Slim branded header bar ── */
.p7-diary-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 24px;
    background: #fff;
    border-bottom: 1px solid #ede9f7;
    font-family: 'Rubik', sans-serif !important;
    box-shadow: 0 2px 8px rgba(108,59,170,.06);
}
.p7-bar-brand {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 2px;
    color: var(--p7-primary);
    opacity: .9;
    text-transform: uppercase;
}
/* Venue name: larger, purple-bordered pill */
.p7-bar-venue {
    font-size: 15px;
    font-weight: 700;
    color: var(--p7-primary-dark);
    background: linear-gradient(135deg, #f5f0ff, #ede9ff);
    border: 1.5px solid rgba(108,59,170,.28);
    border-radius: 20px;
    padding: 5px 18px;
    letter-spacing: .2px;
    box-shadow: 0 2px 8px rgba(108,59,170,.1);
}

/* ── Remove big hero for v4 pages (bar replaces it) ── */
.p7-venue-diary-v2 .p7-diary-hero-v2 { display: none !important; }

/* ── Checkerboard calendar cells ── */
.p7-big-cal-v2 .p7-alt-0 { background: #ffffff; }
.p7-big-cal-v2 .p7-alt-1 { background: #f4eeff; }

/* Keep hover/selected overriding alt colors */
.p7-big-cal-v2 .p7-big-cal-avail.p7-alt-0:hover,
.p7-big-cal-v2 .p7-big-cal-avail.p7-alt-1:hover {
    background: linear-gradient(135deg, #ede9fe, #ddd6fe) !important;
    box-shadow: inset 0 0 0 2px var(--p7-primary);
    z-index: 1;
}
.p7-big-cal-v2 .p7-big-cal-selected.p7-alt-0,
.p7-big-cal-v2 .p7-big-cal-selected.p7-alt-1 {
    background: linear-gradient(135deg, var(--p7-primary), var(--p7-primary-light)) !important;
}

/* ── Booked cell: event-card layout – number in corner, info fills cell ── */
.p7-big-cal-v2 .p7-big-cal-booked {
    background: linear-gradient(160deg, #f0fdf8, #e8faf3) !important;
    cursor: default !important;
    border-right: 3px solid #10b981 !important;
    position: relative !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 5px 6px 5px !important;
}

/* Date number: small circle badge tucked in top-right corner */
.p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num {
    position: absolute !important;
    top: 5px !important;
    right: 5px !important;
    width: 22px !important;
    height: 22px !important;
    font-size: .68rem !important;
    background: #10b981 !important;
    color: #fff !important;
    font-weight: 800 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 1px 5px rgba(16,185,129,.4) !important;
    line-height: 1 !important;
}

/* Booking info: fills the cell from top */
.p7-cal-booking {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding-top: 28px;     /* clears the corner number */
    width: 100%;
    overflow: hidden;
}
.p7-cal-bk-type {
    font-size: 12px;
    font-weight: 800;
    color: #047857;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25;
    background: rgba(16,185,129,.13);
    border-radius: 7px;
    padding: 2px 7px;
    max-width: 100%;
}
.p7-cal-bk-name {
    font-size: 11px;
    font-weight: 700;
    color: #134e4a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
    max-width: 100%;
    padding: 0 2px;
}
.p7-cal-bk-phone {
    font-size: 10px;
    font-weight: 500;
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
    direction: ltr;
    max-width: 100%;
    padding: 0 2px;
}

/* ── Bigger modal (v4) ── */
.p7-venue-diary-v2 ~ .p7-modal-overlay .p7-modal-card,
.p7-modal-overlay .p7-modal-card {
    max-width: 640px !important;
}

/* ── Modal form-wrap as flex column (bar + scrollable body + sticky footer) ── */
#p7-modal-form-wrap {
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    overflow: hidden;
}
.p7-modal-body-wrap {
    flex: 1;
    overflow-y: auto;
}

/* ── Modal footer with cancel + submit ── */
.p7-modal-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 28px 22px;
    border-top: 1px solid #f0ebff;
    background: #fdfcff;
    flex-shrink: 0;
}
.p7-btn-send-v2 {
    flex: 1;
    margin-top: 0 !important;   /* override old margin-top:18px */
}
.p7-btn-cancel-v2 {
    flex-shrink: 0;
    padding: 14px 22px;
    background: #f1f5f9;
    color: #64748b;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 700;
    font-family: 'Rubik', sans-serif !important;
    cursor: pointer;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.p7-btn-cancel-v2:hover {
    background: #e2e8f0;
    color: #334155;
}

/* ── Textarea: compact in modal ── */
.p7-modal-body-wrap .p7-textarea {
    min-height: 54px !important;
}

/* ── General design uplift: form inputs ── */
.p7-modal-body-wrap .p7-input {
    border-radius: 14px;
    background: #fafbff;
    border-color: rgba(108,59,170,.18);
}
.p7-modal-body-wrap .p7-input:focus {
    border-color: var(--p7-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(108,59,170,.1);
}
.p7-modal-body-wrap .p7-form-label {
    font-size: 12px;
    font-weight: 800;
    color: #374151;
    letter-spacing: .3px;
    text-transform: uppercase;
}

/* ── Modal: broader card style matching premium pages ── */
.p7-modal-overlay .p7-modal-card {
    box-shadow: 0 32px 100px rgba(45,19,99,.28) !important;
}

/* ── Mobile v4 overrides ── */
@media (max-width: 767px) {
    .p7-diary-bar          { padding: 8px 16px; }
    .p7-bar-brand          { font-size: 12px; }
    .p7-bar-venue          { font-size: 13px; padding: 4px 14px; }
    .p7-modal-footer       { padding: 14px 16px 18px; gap: 8px; }
    .p7-btn-cancel-v2      { font-size: 14px; padding: 12px 16px; }
    .p7-cal-bk-type        { font-size: 9px; }
    .p7-cal-bk-name        { font-size: 8px; }
    .p7-cal-bk-phone       { display: none; }
    .p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num { width: 24px; height: 24px; font-size: .78rem; }
}

/* ══════════════════════════════════════════════════════
   PREMIUM UX/UI — v1.3.7
   Complete visual upgrade: animations, depth, premium feel
   ══════════════════════════════════════════════════════ */

/* ── Page background ── */
.p7-venue-diary-v2 { background: #f0ebff; }

/* ── Bar: refined with frosted glass ── */
.p7-diary-bar {
    padding: 12px 28px !important;
    background: rgba(255,255,255,.95) !important;
    backdrop-filter: blur(16px) !important;
    border-bottom: none !important;
    box-shadow: 0 1px 0 rgba(108,59,170,.1), 0 4px 20px rgba(108,59,170,.07) !important;
    position: sticky;
    top: 0;
    z-index: 100;
}
.p7-bar-brand {
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 2.5px !important;
    background: linear-gradient(135deg, #2d1363, #6c3baa);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    opacity: 1 !important;
}
.p7-bar-venue {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #3b1a6e !important;
    background: linear-gradient(135deg, #ede8ff, #e4d9ff) !important;
    border: 1.5px solid rgba(108,59,170,.25) !important;
    border-radius: 24px !important;
    padding: 6px 20px !important;
    box-shadow: 0 2px 12px rgba(108,59,170,.14), inset 0 1px 0 rgba(255,255,255,.7) !important;
    letter-spacing: .1px !important;
}
/* EVENT360 logo inside the brand slot — sized to match the previous wordmark height.
   !important needed so the theme's global `img { height:auto }` cannot enlarge it. */
.p7-bar-logo {
    display: block !important;
    height: 24px !important;
    width: auto !important;
    max-width: 150px !important;
    object-fit: contain !important;
}

/* ── Calendar nav: premium ── */
.p7-big-cal-v2 .p7-big-cal-nav {
    background: linear-gradient(180deg, #faf8ff 0%, #f2edff 100%) !important;
    padding: 16px 32px !important;
    border-bottom: 1px solid rgba(108,59,170,.1) !important;
}
.p7-big-cal-v2 .p7-big-cal-month {
    font-size: 1.4rem !important;
    font-weight: 900 !important;
    background: linear-gradient(135deg, #2d1363, #5b2d9e);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.p7-big-cal-v2 .p7-big-cal-nav-btn {
    width: 40px !important;
    height: 40px !important;
    border-radius: 12px !important;
    background: #fff !important;
    border: 1.5px solid rgba(108,59,170,.18) !important;
    box-shadow: 0 2px 8px rgba(108,59,170,.1), inset 0 1px 0 rgba(255,255,255,.8) !important;
    color: #5b21b6 !important;
    font-size: 16px !important;
    transition: all .2s cubic-bezier(.4,0,.2,1) !important;
}
.p7-big-cal-v2 .p7-big-cal-nav-btn:hover {
    background: linear-gradient(135deg, #5b21b6, #7c3aed) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 6px 20px rgba(91,33,182,.4) !important;
    transform: translateY(-1px) !important;
}

/* ── Calendar col headers ── */
.p7-big-cal-v2 .p7-big-cal-headers {
    background: linear-gradient(180deg, #ede8ff 0%, #e8e0ff 100%) !important;
    border-bottom: 2px solid rgba(108,59,170,.12) !important;
}
.p7-big-cal-v2 .p7-big-cal-hcell {
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .7px !important;
    text-transform: uppercase !important;
    color: #4c2a7e !important;
    padding: 14px 4px !important;
}

/* ── Calendar grid cells: no hard borders → depth via shadows ── */
.p7-big-cal-v2 .p7-big-cal-day {
    border-right: none !important;
    border-bottom: 1px solid rgba(108,59,170,.07) !important;
    padding: 12px 6px 8px !important;
    transition: all .18s cubic-bezier(.4,0,.2,1) !important;
    position: relative;
}

/* Available cells hover: satisfying scale + inset ring */
.p7-big-cal-v2 .p7-big-cal-avail:hover {
    background: linear-gradient(155deg, #ede9ff 0%, #ddd6fe 100%) !important;
    box-shadow: inset 0 0 0 2px #7c3aed, 0 4px 14px rgba(124,58,237,.12) !important;
    transform: scale(1.015) !important;
    z-index: 2 !important;
    border-radius: 10px !important;
}
/* CTA label on hover */
.p7-big-cal-v2 .p7-big-cal-cta {
    font-size: 9px !important;
    color: #7c3aed !important;
    font-weight: 700 !important;
    background: rgba(124,58,237,.1) !important;
    border-radius: 6px !important;
    padding: 2px 6px !important;
    transition: opacity .15s, transform .15s !important;
}

/* Today: rich gradient circle */
.p7-big-cal-v2 .p7-big-cal-today {
    background: linear-gradient(155deg, #faf7ff, #f2eaff) !important;
}
.p7-big-cal-v2 .p7-big-cal-today .p7-big-cal-num {
    background: linear-gradient(135deg, #2d1363 0%, #6c3baa 100%) !important;
    width: 36px !important; height: 36px !important;
    box-shadow: 0 4px 14px rgba(45,19,99,.45) !important;
    font-size: .88rem !important;
}

/* Past cells: clearly faded */
.p7-big-cal-v2 .p7-big-cal-past {
    opacity: .45 !important;
}

/* ── Calendar num base ── */
.p7-big-cal-v2 .p7-big-cal-num {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: #1e1b2e !important;
}

/* ── MODAL: full premium redesign ── */

/* Overlay: richer blur + darker bg */
#p7-modal {
    background: rgba(12, 6, 35, .72) !important;
    backdrop-filter: blur(12px) !important;
}

/* Card */
.p7-modal-overlay .p7-modal-card {
    max-width: 660px !important;
    border-radius: 28px !important;
    box-shadow: 0 40px 120px rgba(20,8,60,.38), 0 0 0 1px rgba(255,255,255,.06) !important;
}

/* Slide-in animation when .p7-modal-open added */
.p7-modal-open .p7-modal-card {
    animation: p7CardIn .32s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes p7CardIn {
    from { transform: translateY(28px) scale(.95); opacity: 0; }
    to   { transform: translateY(0)    scale(1);   opacity: 1; }
}

/* Modal close btn */
.p7-modal-overlay .p7-modal-close {
    top: 16px !important; left: 16px !important;
    width: 34px !important; height: 34px !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.18) !important;
    border: 1.5px solid rgba(255,255,255,.28) !important;
    font-size: 13px !important;
}
.p7-modal-overlay .p7-modal-close:hover {
    background: rgba(255,255,255,.3) !important;
}

/* ── Header: system blue-violet gradient matching admin pages ── */
.p7-modal-date-header {
    background: linear-gradient(135deg, #1e40af 0%, #4f46e5 50%, #7c3aed 100%) !important;
    padding: 20px 28px 18px !important;
    position: relative;
    overflow: hidden;
    flex-direction: column !important;
    gap: 10px !important;
}
.p7-modal-date-header::before {
    content: '';
    position: absolute;
    top: -50px; right: -40px;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(255,255,255,.09), transparent 70%);
    pointer-events: none;
}
.p7-modal-date-header::after {
    content: '';
    position: absolute;
    bottom: -40px; left: -20px;
    width: 150px; height: 150px;
    background: radial-gradient(circle, rgba(255,255,255,.06), transparent 70%);
    pointer-events: none;
}

/* Venue badge in header */
.p7-mhd-venue {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 20px;
    padding: 4px 14px 4px 12px;
    font-size: 12px;
    font-weight: 700;
    color: rgba(255,255,255,.92);
    width: fit-content;
    backdrop-filter: blur(6px);
    letter-spacing: .2px;
    position: relative;
    z-index: 1;
}

/* Date row inside header */
.p7-mhd-date {
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
    z-index: 1;
}
.p7-mhd-date .p7-modal-date-emoji {
    font-size: 2rem !important;
}
.p7-mhd-date .p7-modal-date-weekday {
    font-size: 11px !important;
    color: rgba(255,255,255,.6) !important;
    font-weight: 600 !important;
    letter-spacing: .8px !important;
    margin-bottom: 3px !important;
}
.p7-mhd-date .p7-modal-date-text {
    font-size: 1.45rem !important;
    font-weight: 900 !important;
    color: #fff !important;
    letter-spacing: -.3px !important;
}

/* ── Modal body: more generous, premium typography ── */
.p7-modal-body-wrap {
    padding: 24px 32px 18px !important;
}
.p7-modal-title-v2 {
    font-size: 1.1rem !important;
    font-weight: 800 !important;
    color: #160740 !important;
    margin: 0 0 3px !important;
}
.p7-modal-sub-v2 {
    font-size: 13px !important;
    color: #9e9ab4 !important;
    margin: 0 0 22px !important;
}

/* Form labels: premium */
.p7-modal-body-wrap .p7-form-label {
    font-size: 11px !important;
    font-weight: 800 !important;
    color: #4c2a7e !important;
    letter-spacing: .8px !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}
.p7-modal-body-wrap .p7-required {
    color: #f43f5e !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

/* Event type grid: premium pill chips */
.p7-event-type-grid-modal {
    gap: 7px !important;
}
.p7-modal-body-wrap .p7-event-type-inner {
    padding: 10px 8px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    border-radius: 14px !important;
    background: #faf8ff !important;
    border: 1.5px solid rgba(108,59,170,.13) !important;
    color: #4c2a7e !important;
    transition: all .16s cubic-bezier(.4,0,.2,1) !important;
    letter-spacing: .1px !important;
    line-height: 1.35 !important;
}
.p7-modal-body-wrap .p7-event-type-btn:hover .p7-event-type-inner {
    background: linear-gradient(135deg, #ede8ff, #e2d9ff) !important;
    border-color: rgba(108,59,170,.38) !important;
    color: #3b1a6e !important;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(108,59,170,.1) !important;
}
.p7-modal-body-wrap .p7-event-type-btn.p7-selected .p7-event-type-inner {
    background: linear-gradient(135deg, #2d1363 0%, #5b21b6 60%, #7c3aed 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 5px 18px rgba(45,19,99,.45), inset 0 1px 0 rgba(255,255,255,.15) !important;
    transform: translateY(-1px) !important;
}

/* Inputs: premium */
.p7-modal-body-wrap .p7-input {
    padding: 13px 16px !important;
    border-radius: 14px !important;
    border: 1.5px solid rgba(108,59,170,.13) !important;
    background: #faf8ff !important;
    color: #160740 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: border-color .18s, box-shadow .18s, background .18s !important;
}
.p7-modal-body-wrap .p7-input:focus {
    border-color: #6c3baa !important;
    background: #fff !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(108,59,170,.1) !important;
}
.p7-modal-body-wrap .p7-input::placeholder {
    color: #b4a8cc !important;
    font-weight: 400 !important;
}
.p7-modal-body-wrap .p7-textarea {
    min-height: 52px !important;
    max-height: 90px !important;
}

/* ── Modal footer: premium ── */
.p7-modal-footer {
    padding: 16px 32px 24px !important;
    background: linear-gradient(180deg, #fdfbff, #f8f4ff) !important;
    border-top: 1px solid rgba(108,59,170,.08) !important;
    gap: 12px !important;
}
.p7-btn-cancel-v2 {
    padding: 14px 26px !important;
    border-radius: 16px !important;
    border: 1.5px solid rgba(108,59,170,.2) !important;
    background: #fff !important;
    color: #6c3baa !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(108,59,170,.07) !important;
    transition: all .18s !important;
}
.p7-btn-cancel-v2:hover {
    background: #f5f0ff !important;
    border-color: rgba(108,59,170,.38) !important;
    box-shadow: 0 4px 14px rgba(108,59,170,.1) !important;
}
.p7-btn-send-v2 {
    padding: 15px 24px !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, #160740 0%, #5b21b6 50%, #7c3aed 100%) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .3px !important;
    box-shadow: 0 8px 28px rgba(22,7,64,.42), inset 0 1px 0 rgba(255,255,255,.16) !important;
    transition: all .22s cubic-bezier(.4,0,.2,1) !important;
    margin-top: 0 !important;
}
.p7-btn-send-v2:hover:not(:disabled) {
    transform: translateY(-2px) !important;
    box-shadow: 0 14px 42px rgba(22,7,64,.52), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
.p7-btn-send-v2:active:not(:disabled) {
    transform: translateY(0) !important;
    box-shadow: 0 4px 14px rgba(22,7,64,.3) !important;
}
.p7-btn-send-v2:disabled { opacity: .5 !important; }

/* ── Success state ── */
#p7-modal-success-wrap .p7-modal-date-header {
    flex-direction: row !important;
    justify-content: center !important;
}
.p7-modal-success {
    padding: 36px 32px 32px !important;
    text-align: center;
}
.p7-success-title {
    font-size: 1.4rem !important;
    font-weight: 900 !important;
    color: #160740 !important;
    margin: 0 0 10px !important;
}
.p7-success-text {
    color: #7c6fa0 !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

/* ── Hint ── */
.p7-venue-diary-v2 .p7-cal-hint {
    font-size: 12px !important;
    color: #a99dc0 !important;
    padding: 12px 0 8px !important;
    letter-spacing: .2px !important;
}

/* ── Form message ── */
.p7-modal-body-wrap .p7-form-message {
    border-radius: 12px !important;
    font-size: 13px !important;
    padding: 11px 16px !important;
    margin-top: 6px !important;
}

/* ── Booked cell overrides inside premium section ── */
.p7-venue-diary-v2 .p7-big-cal-booked .p7-cal-bk-type  { font-size: 12px !important; }
.p7-venue-diary-v2 .p7-big-cal-booked .p7-cal-bk-name  { font-size: 11px !important; }
.p7-venue-diary-v2 .p7-big-cal-booked .p7-cal-bk-phone { font-size: 10px !important; }

/* ── Mobile premium overrides ── */
@media (max-width: 767px) {
    .p7-diary-bar            { padding: 10px 16px !important; }
    .p7-bar-venue            { font-size: 13px !important; padding: 5px 14px !important; }
    .p7-bar-logo             { height: 19px !important; }
    .p7-big-cal-v2 .p7-big-cal-nav { padding: 12px 16px !important; }
    .p7-modal-body-wrap      { padding: 18px 20px 14px !important; }
    .p7-modal-footer         { padding: 14px 20px 20px !important; }
    .p7-mhd-venue            { font-size: 11px !important; padding: 3px 10px !important; }
    .p7-mhd-date .p7-modal-date-text { font-size: 1.2rem !important; }
    .p7-event-type-grid-modal { grid-template-columns: repeat(3,1fr) !important; gap: 6px !important; }
    .p7-btn-cancel-v2        { padding: 13px 16px !important; font-size: 13px !important; }
    .p7-btn-send-v2          { font-size: 14px !important; padding: 13px 18px !important; }
    /* Booked cells: slightly smaller on mobile but still readable */
    .p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-type  { font-size: 11px !important; }
    .p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-name  { font-size: 10px !important; }
    .p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-phone { display: none !important; }
    .p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num  { width: 18px !important; height: 18px !important; font-size: .6rem !important; }
}

/* ══════════════════════════════════════════════════════
   v1.3.9 – Larger booked-cell text · Modal no-scroll ·
            Light-purple footer + system-purple CTA button
   ══════════════════════════════════════════════════════ */

/* ── 1. Booked cell text: larger ── */
.p7-cal-bk-type  { font-size: 13px !important; padding: 2px 8px !important; }
.p7-cal-bk-name  { font-size: 12px !important; }
.p7-cal-bk-phone { font-size: 11px !important; }

/* ── 2. Modal: everything fits on screen – no scroll needed ── */

/* Disable body scroll entirely */
.p7-modal-body-wrap {
    overflow-y: visible !important;
    flex: none !important;
}
#p7-modal-form-wrap {
    overflow: visible !important;
    max-height: none !important;
}

/* Tighter header */
.p7-modal-date-header {
    padding: 14px 22px 12px !important;
    gap: 8px !important;
}
.p7-mhd-venue { font-size: 11px !important; padding: 3px 12px !important; margin-bottom: 0 !important; }
.p7-mhd-date .p7-modal-date-text { font-size: 1.3rem !important; }
.p7-modal-date-emoji { font-size: 1.7rem !important; }

/* Tighter body */
.p7-modal-body-wrap { padding: 14px 22px 10px !important; }
.p7-modal-title-v2  { font-size: 1rem !important; margin: 0 0 2px !important; }
.p7-modal-sub-v2    { font-size: 12px !important; margin: 0 0 12px !important; }

/* Compact form groups */
.p7-modal-body-wrap .p7-form-group  { margin-bottom: 10px !important; }
.p7-modal-body-wrap .p7-form-row    { margin-bottom: 10px !important; }
.p7-modal-body-wrap .p7-form-label  { margin-bottom: 5px !important; font-size: 10px !important; }

/* Compact event-type chips */
.p7-event-type-grid-modal { gap: 5px !important; }
.p7-modal-body-wrap .p7-event-type-inner {
    padding: 7px 5px !important;
    font-size: 11px !important;
    border-radius: 10px !important;
}

/* Compact inputs */
.p7-modal-body-wrap .p7-input {
    padding: 10px 14px !important;
    font-size: 13px !important;
    border-radius: 12px !important;
}
.p7-modal-body-wrap .p7-textarea {
    min-height: 42px !important;
    max-height: 60px !important;
}

/* ── 3. Footer: light purple · Button: system purple + white text ── */
.p7-modal-footer {
    padding: 12px 22px 18px !important;
    background: linear-gradient(135deg, #ede8ff, #e6deff) !important;
    border-top: 1.5px solid rgba(108,59,170,.15) !important;
}

/* Cancel button on light-purple bg */
.p7-btn-cancel-v2 {
    background: rgba(255,255,255,.7) !important;
    border: 1.5px solid rgba(108,59,170,.25) !important;
    color: #6c3baa !important;
    padding: 12px 22px !important;
    font-size: 14px !important;
    border-radius: 14px !important;
}
.p7-btn-cancel-v2:hover {
    background: rgba(255,255,255,.92) !important;
    border-color: rgba(108,59,170,.45) !important;
}

/* CTA: system purple gradient + white text */
.p7-btn-send-v2 {
    background: linear-gradient(135deg, #6c3baa 0%, #8b5cf6 100%) !important;
    color: #fff !important;
    font-size: 14px !important;
    padding: 12px 20px !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 20px rgba(108,59,170,.38), inset 0 1px 0 rgba(255,255,255,.18) !important;
    letter-spacing: .3px !important;
}
.p7-btn-send-v2:hover:not(:disabled) {
    background: linear-gradient(135deg, #5b2d9e 0%, #7c3aed 100%) !important;
    box-shadow: 0 10px 30px rgba(108,59,170,.5), inset 0 1px 0 rgba(255,255,255,.18) !important;
    transform: translateY(-2px) !important;
}

/* Mobile v1.3.9 */
@media (max-width: 767px) {
    .p7-cal-bk-type  { font-size: 11px !important; }
    .p7-cal-bk-name  { font-size: 10px !important; }
    .p7-cal-bk-phone { display: none !important; }
}

/* ══════════════════════════════════════════════════════
   v1.4.2 – Large centered date numbers everywhere ·
            No CTA text · Booked info centered & bigger
   ══════════════════════════════════════════════════════ */

/* ── 1. Kill "לחצו לקביעה" on ALL screen sizes ── */
.p7-big-cal-cta { display: none !important; }

/* ── 2. Available / past cells: number large + vertically centered ── */
.p7-big-cal-v2 .p7-big-cal-avail,
.p7-big-cal-v2 .p7-big-cal-past {
    justify-content: center !important;
}
/* Date number: medium size, lighter weight = more elegant */
.p7-big-cal-v2 .p7-big-cal-num {
    font-size: 1.35rem !important;
    font-weight: 600 !important;
}
/* Today circle */
.p7-big-cal-v2 .p7-big-cal-today .p7-big-cal-num {
    width: 38px !important;
    height: 38px !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

/* ── 3. Booked cell: number large & centered at top, info centered below ── */
.p7-big-cal-v2 .p7-big-cal-booked {
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 8px 4px 5px !important;
}

/* Booked cell number: elegant, not ultra-bold */
.p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num {
    position: static !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    color: #059669 !important;
    font-size: 1.3rem !important;
    font-weight: 600 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 3px !important;
    line-height: 1 !important;
}

/* Booking info: centered, bigger */
.p7-cal-booking {
    padding-top: 0 !important;
    align-items: center !important;
    text-align: center !important;
    gap: 3px !important;
}
/* Booked info: desktop = generous text sizes */
.p7-cal-bk-type {
    text-align: center !important;
    font-size: 15px !important;
    align-self: center !important;
}
.p7-cal-bk-name {
    text-align: center !important;
    font-size: 15px !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    line-height: 1.3 !important;
    max-width: 100% !important;
    align-self: center !important;
}
.p7-cal-bk-phone {
    text-align: center !important;
    font-size: 13px !important;
    align-self: center !important;
}

/* ── Mobile v1.4.2 ── */
@media (max-width: 767px) {
    .p7-big-cal-v2 .p7-big-cal-num          { font-size: 1.35rem !important; }
    .p7-big-cal-v2 .p7-big-cal-today .p7-big-cal-num { width: 36px !important; height: 36px !important; font-size: .95rem !important; }
    .p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num {
        position: static !important;
        width: auto !important; height: auto !important;
        font-size: 1.2rem !important;
        background: transparent !important;
        color: #059669 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    .p7-cal-bk-type  { font-size: 11px !important; }
    .p7-cal-bk-name  { font-size: 10px !important; }
}

/* ══════════════════════════════════════════════════════
   v1.4.5 – Equal cell heights on mobile
            overflow:hidden prevents booked cells from
            stretching their row taller than other rows
   ══════════════════════════════════════════════════════ */

/* Grid + every cell: clip content, never grow the row */
.p7-big-cal-v2 .p7-big-cal-grid {
    overflow: hidden !important;
}
.p7-big-cal-v2 .p7-big-cal-day {
    overflow: hidden !important;
}
.p7-big-cal-v2 .p7-big-cal-booked {
    overflow: hidden !important;
}
.p7-cal-booking {
    overflow: hidden !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
}

/* Mobile: fixed row height — all cells equal, tall enough for booking info */
@media (max-width: 767px) {
    /* Let the grid scroll naturally; fixed row height = equal cells */
    .p7-big-cal-v2 .p7-big-cal-grid {
        height: auto !important;
        grid-auto-rows: 80px !important;
    }
    .p7-big-cal-v2 .p7-big-cal-day {
        min-height: 0 !important;
        height: 80px !important;
    }
    /* Booked number: readable but compact */
    .p7-big-cal-v2 .p7-big-cal-booked .p7-big-cal-num {
        font-size: 1rem !important;
        margin-bottom: 2px !important;
    }
    /* Booking info: readable sizes that fit in 80px */
    .p7-cal-bk-type  { font-size: 11px !important; padding: 1px 6px !important; }
    .p7-cal-bk-name  { font-size: 10px !important; -webkit-line-clamp: 1 !important; }
    .p7-cal-bk-phone { font-size: 9px !important; }
}

/* ══════════════════════════════════════════════════════
   v1.4.0 – Success popup premium redesign
            (system blue-violet gradient = admin pages)
   ══════════════════════════════════════════════════════ */

/* Success header: bigger emoji, centered, same system gradient */
#p7-modal-success-wrap .p7-modal-date-header {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 28px 28px 22px !important;
    gap: 8px !important;
    background: linear-gradient(135deg, #1e40af 0%, #4f46e5 50%, #7c3aed 100%) !important;
}
#p7-modal-success-wrap .p7-modal-date-emoji {
    font-size: 3rem !important;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,.2));
}

/* Success body */
#p7-modal-success-wrap .p7-modal-success {
    padding: 28px 32px 24px !important;
    text-align: center !important;
    background: #fff !important;
}
#p7-modal-success-wrap .p7-success-title {
    font-size: 1.35rem !important;
    font-weight: 900 !important;
    color: #1e293b !important;
    margin: 0 0 10px !important;
}
#p7-modal-success-wrap .p7-success-text {
    color: #64748b !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
    margin: 0 0 22px !important;
}

/* Close button in success popup: system gradient */
#p7-modal-close-success {
    background: linear-gradient(135deg, #1e40af 0%, #4f46e5 50%, #7c3aed 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 14px !important;
    padding: 12px 36px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: 0 4px 16px rgba(99,102,241,.4) !important;
    transition: transform .18s, box-shadow .18s !important;
}
#p7-modal-close-success:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(99,102,241,.5) !important;
}

/* ══════════════════════════════════════════════════════
   v1.4.7 – Booking detail modal + booked-cell cursor
   ══════════════════════════════════════════════════════ */

/* Booked cells are now clickable */
.p7-big-cal-v2 .p7-big-cal-booked { cursor: pointer !important; }
.p7-big-cal-v2 .p7-big-cal-booked:hover { filter: brightness(0.93) !important; }

/* Booking detail list */
.p7-bk-detail-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 8px 0;
}
.p7-bk-detail-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 12px 16px;
    background: #f8faff;
    border: 1px solid rgba(99,102,241,.12);
    border-radius: 12px;
}
.p7-bk-detail-label {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}
.p7-bk-detail-value {
    font-size: 15px;
    font-weight: 700;
    color: #1e293b;
    text-align: left;
    direction: rtl;
}


/* EVENT360 global mobile input zoom fix
   Purpose: prevent iOS Safari/Chrome mobile auto-zoom when focusing any editable field.
   Logic untouched. */
@media screen and (max-width: 900px) {
  html, body {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  textarea,
  select,
  .event360 input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  .event360 textarea,
  .event360 select,
  [class^="eil-"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  [class*=" eil-"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  [class^="eil-"] textarea,
  [class*=" eil-"] textarea,
  [class^="eil-"] select,
  [class*=" eil-"] select,
  [class^="p6-"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  [class*=" p6-"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  [class^="p6-"] textarea,
  [class*=" p6-"] textarea,
  [class^="p6-"] select,
  [class*=" p6-"] select {
    font-size: 16px !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }
}


/* ─────────────────────────────────────────────────────────────────────────
   Status colours on the main calendar.

   The card is the card the calendar has always drawn — same structure, same
   fonts, same sizes, same texts, same icons, same spacing, same information
   hierarchy. Only its colour follows the lead's status:

     · closed ("יצא לפועל")  → untouched: the existing green card
     · open / not decided yet → the SAME card in light blue, with a light blue
       frame and a light blue date badge, and deliberately WITHOUT the vertical
       accent bar on the right
     · did not happen ("לא יצא לפועל", a manual removal by the sales manager
       included) → the same card in red

   No status wording is added here; the wording lives inside the opened day.
   ───────────────────────────────────────────────────────────────────────── */

/* ── open lead: EXACTLY the closed lead's card, re-themed light blue ──
   The green card is the template, and the ONLY properties overridden here
   are colour values. Verified in a real browser: every computed structural
   property (size, padding, borders, radius, positions, fonts) is identical
   between the two cards. Note the green card's right accent is cancelled
   by a later border-right:none rule, so its computed frame is none — which
   is why NO border is set here either: parity is with what actually renders.
     background  #f0fdf8/#e8faf3      → #f0f9ff/#e6f6fe
     date badge  #10b981              → #0ea5e9
     type chip   rgba(16,185,129,.13) → rgba(14,165,233,.13)
     chip text   #047857              → #0369a1
     name        #134e4a              → #0c4a6e                        */
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-active {
    background: linear-gradient(160deg, #f0f9ff, #e6f6fe) !important;
}
/* The date number follows the card, exactly the way the green card draws it:
   the digit itself carries the colour and there is no badge behind it. Before
   this, only the badge colour was overridden here — and because the booked
   cell's number is drawn as a plain digit (background transparent, colour
   #059669), a light blue card was left with a GREEN number. The green state is
   not touched: its rules are elsewhere and unchanged. */
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-active .p7-big-cal-num {
    background: transparent !important;
    color: #0ea5e9 !important;
}
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-active .p7-cal-bk-type {
    background: rgba(14,165,233,.13) !important;
    color: #0369a1 !important;
}
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-active .p7-cal-bk-name {
    color: #0c4a6e !important;
}

/* ── did not happen: the SAME card as the other two, in red ──
   Built exactly like the light blue card above, so the three states differ
   only in hue and in nothing else:
     · no right accent bar — it is left out, so the cell keeps the calendar's
       own "no border" the green and light blue cards already have
     · the tint is at the same whisper level as theirs, in red
     · the date number is the plain digit they draw, coloured red, with no
       badge behind it
     · the type chip and the celebrants' name follow the card's colour, the
       same way the light blue card re-themes them
   Nothing structural is set here: no size, spacing, radius, font or position. */
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-not {
    background: linear-gradient(160deg, #fff6f7, #fdecee) !important;
}
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-not .p7-big-cal-num {
    background: transparent !important;
    color: #ef4444 !important;
}
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-not .p7-cal-bk-type {
    background: rgba(239,68,68,.13) !important;
    color: #b91c1c !important;
}
.p7-big-cal-v2 .p7-big-cal-booked.p7-cal-st-not .p7-cal-bk-name {
    color: #7f1d1d !important;
}

/* .p7-cal-st-real intentionally has no rules: a closed lead keeps the card
   exactly as the calendar has always drawn it. */

/* ─────────────────────────────────────────────────────────────────────────
   Several leads on one day: the main lead's names always win the space.
   "+N אירועים נוספים" is the line that gets trimmed when the cell is short —
   never the celebrants' names. Which lead is the main one is decided
   elsewhere and is not touched here.
   ───────────────────────────────────────────────────────────────────────── */
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-booking {
    min-height: 0 !important;
}
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-type,
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-name {
    flex: 0 0 auto !important;   /* never squeezed */
}
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-phone,
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-more {
    flex: 0 1 auto !important;   /* these give way first */
    min-height: 0 !important;
    overflow: hidden !important;
}
.p7-big-cal-v2 .p7-big-cal-booked .p7-cal-bk-more {
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    line-height: 1.15 !important;
    margin-top: 1px !important;
}

/* ══════════════════════════════════════════════════════════════════════
   Extra phone numbers on the lead form ("+ מספר נוסף")
   Additive only: the main phone field above keeps every style it had.
   ══════════════════════════════════════════════════════════════════════ */
.p7-phone-row {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
}
.p7-phone-row .p7-input { flex: 1; min-width: 0; }
.p7-phone-remove {
    flex: none;
    width: 40px;
    align-self: stretch;
    min-height: 40px;
    border: 1.5px solid #fecaca;
    background: #fff5f5;
    color: #b91c1c;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.p7-phone-remove:hover { background: #fee2e2; border-color: #f87171; }
.p7-add-phone {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--p7-primary);
    background: #f6f2ff;
    border: 1px dashed rgba(108, 59, 170, .38);
    border-radius: 10px;
    padding: 7px 13px;
    cursor: pointer;
    transition: background .15s, border-style .15s;
}
.p7-add-phone:hover {
    background: #ede4ff;
    border-style: solid;
}

/* ══════════════════════════════════════════════════════════════════════
   Lead import: the button in the diary bar and the upload / preview modal.
   Additive only — no existing diary rule is changed.
   ══════════════════════════════════════════════════════════════════════ */
.p7-bar-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}
.p7-import-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--p7-primary-dark);
    background: #fff;
    border: 1.5px solid rgba(108, 59, 170, .3);
    border-radius: 24px;
    padding: 6px 16px;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 2px 10px rgba(108, 59, 170, .10);
    transition: background .15s, border-color .15s;
}
.p7-import-btn:hover { background: #f6f2ff; border-color: var(--p7-primary); }
.p7-import-btn svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; }

.p7imp-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(30, 20, 60, .55);
    padding: 22px 16px;
    overflow-y: auto;
}
.p7imp-overlay.p7imp-open { display: flex; align-items: flex-start; justify-content: center; }
.p7imp-card {
    position: relative;
    background: #fff;
    border-radius: 20px;
    width: 100%;
    max-width: 540px;
    box-shadow: 0 24px 70px rgba(76, 42, 126, .28);
    overflow: hidden;
    font-family: 'Heebo', 'Segoe UI', sans-serif;
}
.p7imp-card.p7imp-is-wide, .p7imp-overlay.p7imp-open .p7imp-card:has(.p7imp-wide:not([hidden])) { max-width: 1180px; }
.p7imp-x {
    position: absolute;
    inset-inline-start: 14px;
    top: 14px;
    z-index: 2;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    border: 1px solid #e5e0f5;
    background: #fff;
    color: #6b7280;
    font-size: 14px;
    cursor: pointer;
    line-height: 1;
}
.p7imp-head { padding: 18px 22px; background: linear-gradient(135deg, #f8f5ff, #efe9ff); border-bottom: 1px solid #e8e0ff; }
.p7imp-head h3 { margin: 0; font-size: 17px; font-weight: 800; color: var(--p7-primary-dark); }
.p7imp-head p  { margin: 4px 0 0; font-size: 12.5px; color: var(--p7-text-muted); }
.p7imp-head-wait { background: linear-gradient(135deg, #fffbeb, #fef3c7); border-bottom-color: #fde68a; }
.p7imp-head-wait h3, .p7imp-head-wait p { color: #92400e; }
.p7imp-body { padding: 18px 22px; }
.p7imp-scroll { max-height: 60vh; overflow-y: auto; }
.p7imp-picks { display: grid; gap: 10px; }
.p7imp-pick {
    display: flex;
    align-items: center;
    gap: 13px;
    width: 100%;
    text-align: right;
    background: #fff;
    border: 1.5px solid #e5e0f5;
    border-radius: 14px;
    padding: 13px 15px;
    cursor: pointer;
    font-family: inherit;
    transition: border-color .15s, background .15s;
}
.p7imp-pick:hover { border-color: var(--p7-primary); background: #faf8ff; }
.p7imp-pick .ic {
    width: 40px; height: 40px; border-radius: 11px; flex: none;
    display: grid; place-items: center; font-size: 19px;
    background: #f3f0ff; color: var(--p7-primary-dark);
}
.p7imp-pick b    { display: block; font-size: 14px; font-weight: 800; color: var(--p7-text); }
.p7imp-pick span span { display: block; font-size: 11.5px; color: var(--p7-text-muted); margin-top: 1px; }
.p7imp-foot { padding: 13px 22px; background: #faf8ff; border-top: 1px solid #f0ecff; font-size: 11.5px; color: var(--p7-text-muted); }
.p7imp-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.p7imp-spacer { flex: 1; }
.p7imp-cnt { font-size: 13px; font-weight: 700; color: #334155; }
.p7imp-cnt b { color: var(--p7-primary); }
.p7imp-btn {
    font-family: inherit; font-size: 13.5px; font-weight: 700;
    border-radius: 11px; padding: 10px 20px; cursor: pointer;
    border: 1.5px solid #e2e8f0; background: #f1f5f9; color: #64748b;
}
.p7imp-btn-primary {
    background: linear-gradient(135deg, #1e40af 0%, #4f46e5 50%, #7c3aed 100%);
    color: #fff; border-color: transparent; box-shadow: 0 4px 14px rgba(99, 102, 241, .32);
}
.p7imp-btn:disabled { opacity: .6; cursor: default; }
.p7imp-proc { padding: 44px 22px; text-align: center; }
.p7imp-spin {
    width: 44px; height: 44px; margin: 0 auto 16px; border-radius: 50%;
    border: 4px solid #ede9fe; border-top-color: var(--p7-primary);
    animation: p7impSpin 1s linear infinite;
}
@keyframes p7impSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .p7imp-spin { animation-duration: 3s; } }
.p7imp-proc h3 { margin: 0 0 6px; font-size: 16px; font-weight: 800; color: var(--p7-primary-dark); }
.p7imp-proc p  { margin: 0; font-size: 13px; color: var(--p7-text-muted); }
.p7imp-toolbar {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 11px 22px; background: #fbfbff;
    border-bottom: 1px solid #f1f5f9; font-size: 12.5px; color: var(--p7-text-muted);
}
.p7imp-lnk {
    background: none; border: none; font-family: inherit; font-size: 12.5px;
    font-weight: 700; color: var(--p7-primary); cursor: pointer; padding: 3px 6px; border-radius: 7px;
}
.p7imp-lnk:hover { background: #f3f0ff; }
.p7imp-sep { width: 1px; height: 14px; background: #e5e0f5; }
.p7imp-tblwrap { overflow-x: auto; }
.p7imp-tbl { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 900px; }
.p7imp-tbl th {
    background: #f8faff; color: #334155; text-align: right; padding: 10px 12px;
    font-weight: 800; font-size: 12px; border-bottom: 1px solid #e2e8f0; white-space: nowrap;
}
.p7imp-tbl td { padding: 10px 12px; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.p7imp-tbl tr.off  td { background: #fafafa; opacity: .55; }
.p7imp-tbl tr.warn td { background: #fffdf5; }
.p7imp-tbl tr.dup  td { background: #fff8f2; }
.p7imp-tbl td.num { color: #94a3b8; font-weight: 700; }
.p7imp-tbl input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--p7-primary); cursor: pointer; }
.p7imp-in {
    width: 100%; min-width: 96px; font-family: inherit; font-size: 13px; padding: 6px 9px;
    border: 1.5px solid transparent; border-radius: 8px; background: transparent;
    color: var(--p7-text); direction: rtl;
}
.p7imp-in:hover { border-color: #e2e8f0; background: #fff; }
.p7imp-in:focus { border-color: var(--p7-primary); background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(108, 59, 170, .12); }
.p7imp-in.ltr  { direction: ltr; text-align: left; }
.p7imp-in.main { font-weight: 800; }
.p7imp-in.miss { border-color: #fbbf24; background: #fffbeb; }
.p7imp-tbl .phcell { min-width: 150px; }
.p7imp-tbl .phcell .p7imp-in { margin-bottom: 3px; }
.p7imp-badge {
    display: inline-block; font-size: 10.5px; font-weight: 800; color: #4f46e5;
    background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 999px; padding: 1px 8px;
}
.p7imp-flag {
    display: inline-flex; align-items: center; gap: 4px; border-radius: 999px;
    padding: 2px 9px; font-size: 10.5px; font-weight: 800; white-space: nowrap;
}
.p7imp-flag.f-ok    { background: #dcfce7; color: #166534; }
.p7imp-flag.f-check { background: #fef3c7; color: #92400e; }
.p7imp-flag.f-dup   { background: #ffedd5; color: #9a3412; }
.p7imp-dest {
    display: inline-block; font-size: 11.5px; font-weight: 700;
    background: #f5f3ff; border: 1px solid #ddd6fe; border-radius: 9px;
    padding: 5px 9px; color: var(--p7-primary-dark); white-space: nowrap;
}
.p7imp-dest.warn { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.p7imp-dest.dup  { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.p7imp-dupacts { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 5px; }
.p7imp-dupacts button {
    font-family: inherit; font-size: 10.5px; font-weight: 700; border-radius: 7px;
    padding: 3px 8px; cursor: pointer; border: 1.5px solid #cbd5e1; background: #fff; color: #334155;
}
.p7imp-dupacts button.on { background: #eef2ff; border-color: #818cf8; color: #4338ca; }
.p7imp-note {
    border-radius: 12px; padding: 11px 14px; font-size: 12.5px;
    font-weight: 600; line-height: 1.65; margin-top: 14px;
    background: #fff5f5; border: 1px solid #fca5a5; color: #b91c1c;
}
.p7imp-note-wait { background: #fffbeb; border-color: #fde68a; color: #92400e; margin-top: 0; }
.p7imp-imglbl { margin: 0 0 8px; font-size: 12.5px; font-weight: 700; color: #334155; }
#p7imp-imgwrap img { max-width: 100%; max-height: 300px; border-radius: 12px; border: 1px solid #e2e8f0; display: block; margin-bottom: 16px; }
#p7imp-imgwrap .p7imp-pdf { width: 100%; height: 340px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; display: block; margin-bottom: 16px; }

@media (max-width: 820px) {
    .p7imp-overlay { padding: 10px; }
    .p7imp-card, .p7imp-card.p7imp-is-wide { max-width: 100%; }
    .p7imp-in { font-size: 16px; }
    .p7imp-actions { gap: 8px; }
    .p7imp-actions .p7imp-btn { flex: 1; text-align: center; justify-content: center; }
}
