.venue-app {
    margin: 0;
    background: #f6efe4;
    color: #14110c;
    font-family: Outfit, "Segoe UI", sans-serif;
}
.venue-app h1, .venue-app h2, .venue-app h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; }
.venue-shell { display: flex; min-height: 100vh; }
.venue-side {
    width: 250px;
    background: #14110c;
    color: #f6e9dc;
    padding: 22px 14px;
    flex-shrink: 0;
}
.venue-brand { display: block; color: #e3c463; text-decoration: none; font-family: "Cormorant Garamond", Georgia, serif; font-size: 26px; padding: 0 10px 16px; }
.venue-side a {
    display: block;
    color: #f6e9dc;
    text-decoration: none;
    padding: 10px 12px;
    border-radius: 12px;
    margin-bottom: 4px;
}
.venue-side a.is-active, .venue-side a:hover { background: rgba(227, 196, 99, 0.16); color: #e3c463; }
.venue-main { flex: 1; padding: 28px 22px 60px; min-width: 0; }
.venue-card {
    background: #fff;
    border: 1px solid rgba(201, 162, 39, 0.35);
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 16px;
}
.venue-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.venue-stat strong { display: block; font-size: 32px; font-family: "Cormorant Garamond", Georgia, serif; }
.venue-stat span { color: #6b5e4e; font-size: 13px; }
.venue-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.venue-app label { display: block; font-size: 13px; margin: 10px 0 4px; color: #6b5e4e; }
.venue-app input, .venue-app select, .venue-app textarea {
    width: 100%;
    border: 1px solid rgba(20, 17, 12, 0.15);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
    color: #14110c;
}
.venue-btn, .venue-btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 10px 18px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
.venue-btn { background: #e3c463; color: #14110c; }
.venue-btn-ghost { background: #2a241c; color: #f6e9dc; }
.venue-auth { max-width: 760px; margin: 32px auto; }
.venue-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.venue-day { border-radius: 10px; padding: 8px; min-height: 64px; background: #fff; border: 1px solid rgba(20,17,12,.08); font-size: 13px; }
.venue-day.is-booked { background: #14110c; color: #e3c463; }
.venue-day.is-blocked { background: #6b5e4e; color: #fff; }
.venue-day.is-tentative { background: #fff3cc; }
.venue-table { width: 100%; border-collapse: collapse; }
.venue-table th, .venue-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid rgba(20,17,12,.08); vertical-align: top; }
.venue-alert { background: #fff8e8; border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.venue-error { background: #fde8e8; border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.venue-checks li { list-style: none; padding: 4px 0; }
.venue-top { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.venue-bell {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #14110c;
    color: #f6e9dc;
    text-decoration: none;
    border-radius: 999px;
    padding: 8px 14px;
    font-weight: 600;
}
.venue-bell-count {
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #e3c463;
    color: #14110c;
    display: inline-grid;
    place-items: center;
    font-size: 12px;
}
.venue-bell-count.is-hidden { display: none; }
.venue-note {
    display: block;
    color: inherit;
    text-decoration: none;
    padding: 10px 0;
    border-bottom: 1px solid rgba(20, 17, 12, 0.08);
}
.venue-note span { display: block; color: #6b5e4e; font-size: 13px; }
.portal-live-toast {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 80;
    max-width: 320px;
    background: #14110c;
    color: #f6e9dc;
    border-radius: 16px;
    padding: 14px 16px;
    cursor: pointer;
    box-shadow: 0 12px 30px rgba(20, 17, 12, 0.2);
}
.portal-live-toast strong { display: block; color: #e3c463; margin-bottom: 4px; }
.portal-live-toast[hidden] { display: none; }
.venue-menu-toggle { display: none; }
@media (max-width: 900px) {
    .venue-stats, .venue-grid { grid-template-columns: 1fr; }
    .venue-shell { display: block; }
    .venue-side { width: auto; }
    .venue-menu-toggle { display: inline-flex; margin-bottom: 10px; }
}
.quote-venues { margin: 8px 0 16px; }
.quote-venue-card {
    display: flex;
    gap: 12px;
    border: 1px solid rgba(227, 196, 99, 0.45);
    border-radius: 16px;
    padding: 12px;
    margin-bottom: 10px;
    background: rgba(255, 251, 247, 0.04);
}
.quote-venue-card img { width: 92px; height: 72px; object-fit: cover; border-radius: 10px; }
.quote-venue-card strong { display: block; }

body.venue-desk #main > h1 {
    margin: 0 0 16px;
    font-size: 28px;
    font-weight: 600;
}
body.venue-desk .venue-card {
    background: #fbf6ee;
    border: 1px solid rgba(201, 162, 39, 0.32);
    border-radius: 16px;
    padding: 18px 20px;
    margin-bottom: 16px;
}
body.venue-desk .venue-table { width: 100%; border-collapse: collapse; }
body.venue-desk .venue-table th {
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #6f6456;
    font-weight: 600;
    padding: 12px 10px;
    border-bottom: 1px solid rgba(20, 17, 12, 0.08);
}
body.venue-desk .venue-table td {
    padding: 12px 10px;
    border-bottom: 1px solid rgba(20, 17, 12, 0.06);
    vertical-align: middle;
}
body.venue-desk .venue-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.venue-desk .venue-card select,
body.venue-desk .venue-card textarea {
    width: 100%;
    border: 1px solid rgba(20, 17, 12, 0.15);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
    color: #14110c;
}
body.venue-desk .venue-card input[type="checkbox"] { width: auto; margin-right: 6px; }
body.venue-desk .venue-btn,
body.venue-desk .venue-btn-ghost {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 700;
    text-decoration: none;
    border: 0;
}
body.venue-desk .venue-btn { background: #e3c463; color: #14110c; }
body.venue-desk .venue-btn-ghost { background: #2a241c; color: #f6e9dc; }
body.venue-desk .venue-filters,
body.venue-desk .venue-month-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
}
body.venue-desk .venue-filters a {
    text-decoration: none;
    border: 1px solid rgba(201, 162, 39, 0.45);
    border-radius: 999px;
    padding: 6px 14px;
    color: #14110c;
    font-weight: 600;
}
body.venue-desk .venue-filters a.is-active { background: #14110c; color: #e3c463; }
body.venue-desk .venue-photo img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 12px;
    background: #f3e6d8;
}
body.venue-desk .venue-stats { margin-bottom: 16px; }
body.venue-desk .venue-cal { margin-top: 8px; }

body.venue-desk .form-label {
    display: block;
}
body.venue-desk .venue-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid rgba(20, 17, 12, 0.08);
    border-radius: 12px;
    background: #fff;
    color: #14110c !important;
    font-size: 14px;
    font-weight: 500;
}
body.venue-desk .venue-check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #c9a227;
    flex: 0 0 auto;
}
body.venue-desk .venue-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}
body.venue-desk .venue-stat strong {
    display: block;
    font-size: 28px;
    line-height: 1.1;
}
body.venue-desk .venue-stat span { color: #6b5e4e; font-size: 13px; }
body.venue-desk .venue-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
body.venue-desk .venue-photo img,
body.venue-desk .venue-photo-thumb {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 12px;
    background: #f3e6d8;
}
body.venue-desk .tox-tinymce {
    width: 100% !important;
    border-radius: 12px !important;
    border-color: rgba(20, 17, 12, 0.15) !important;
}
body.venue-desk .card { margin-bottom: 16px; }
@media (max-width: 900px) {
    body.venue-desk .venue-stats,
    body.venue-desk .venue-grid { grid-template-columns: 1fr; }
}
.venue-app .tox-tinymce { width: 100% !important; border-radius: 12px !important; border-color: rgba(20, 17, 12, 0.15) !important; }
.rich-text p { margin: 0 0 8px; }
.rich-text ul, .rich-text ol { margin: 0 0 8px; padding-left: 18px; }

.venue-register {
    display: grid;
    grid-template-columns: minmax(280px, 360px) 1fr;
    max-width: 1080px;
    margin: 8px auto 24px;
    background: #fff;
    border: 1px solid rgba(201, 162, 39, 0.35);
    border-radius: 28px;
    overflow: hidden;
}
.venue-register-aside {
    background: #14110c;
    color: #f6e9dc;
    padding: 36px 28px;
}
.venue-register-logo { display: inline-block; margin-bottom: 28px; }
.venue-register-logo img { width: 148px; max-width: 100%; height: auto; }
.venue-register-kicker {
    margin: 0 0 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #e3c463;
    font-size: 12px;
    font-weight: 600;
}
.venue-register-aside h1 {
    margin: 0 0 12px;
    color: #fff;
    font-size: 46px;
    line-height: 0.95;
}
.venue-register-aside p { margin: 0 0 22px; color: #e7d7c4; }
.venue-register-aside ul { margin: 0; padding: 0; list-style: none; }
.venue-register-aside li {
    position: relative;
    padding: 0 0 14px 18px;
    color: #f6e9dc;
}
.venue-register-aside li:before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #e3c463;
    position: absolute;
    left: 0;
    top: 8px;
}
.venue-register-form { padding: 28px 28px 22px; }
.venue-register-form section { margin-bottom: 22px; }
.venue-register-form h2 { margin: 0 0 12px; font-size: 28px; }
.venue-register-note { margin: -4px 0 12px; color: #6b5e4e; font-size: 14px; }
.venue-register-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.vfield-wide { grid-column: 1 / -1; }
.venue-register .vfield label { margin-top: 0; }
.venue-register .vfield span,
.vfield-error { display: block; margin-top: 4px; color: #9b2c2c; font-size: 13px; }
.venue-register input,
.venue-register select,
.venue-register textarea { background: #fffbf7; }
.venue-register input:focus,
.venue-register textarea:focus {
    outline: 2px solid rgba(227, 196, 99, 0.9);
    border-color: transparent;
}
.venue-register input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #fffbf7 inset;
    -webkit-text-fill-color: #14110c;
}
.venue-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.venue-type {
    position: relative;
    display: block;
    border: 1px solid rgba(20, 17, 12, 0.12);
    border-radius: 16px;
    padding: 14px 12px;
    background: #fffbf7;
    cursor: pointer;
}
.venue-type input { position: absolute; opacity: 0; pointer-events: none; }
.venue-type strong { display: block; font-size: 16px; }
.venue-type small { display: block; color: #6b5e4e; line-height: 1.35; }
.venue-type:has(input:checked) {
    border-color: #e3c463;
    background: #fff8e8;
    box-shadow: inset 0 0 0 1px #e3c463;
}
.venue-type:focus-within { outline: 2px solid #e3c463; outline-offset: 2px; }
.venue-register-optional {
    border-top: 1px solid rgba(20, 17, 12, 0.08);
    padding-top: 8px;
    margin-bottom: 18px;
}
.venue-register-optional summary {
    cursor: pointer;
    font-weight: 600;
    margin-bottom: 12px;
}
.venue-register-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.venue-register-actions a { color: #9c7a18; }
@media (max-width: 860px) {
    .venue-register { grid-template-columns: 1fr; }
    .venue-register-aside h1 { font-size: 38px; }
    .venue-register-grid, .venue-types { grid-template-columns: 1fr; }
    .venue-register-form { padding: 22px 16px; }
}

.venue-public-auth {
    background: #ead4c6;
    padding: 24px 20px 28px;
}
.venue-public-auth .venue-alert,
.venue-public-auth .venue-error {
    max-width: 1180px;
    margin: 0 auto 12px;
}
.venue-public-auth .venue-register {
    max-width: 1180px;
    margin: 0 auto;
}
.venue-public-auth .venue-register-form section {
    padding: 0;
    border: 0;
    background: transparent;
    position: static;
}
.venue-public-auth label {
    display: block;
    font-size: 13px;
    margin: 0 0 4px;
    color: #6b5e4e;
}
.venue-public-auth input,
.venue-public-auth select,
.venue-public-auth textarea {
    width: 100%;
    border: 1px solid rgba(20, 17, 12, 0.15);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fffbf7;
    color: #14110c;
    font: inherit;
}
.venue-public-auth .venue-type input {
    position: absolute;
    width: auto;
    padding: 0;
    border: 0;
}
.venue-public-auth .venue-auth {
    max-width: 640px;
    margin: 12px auto 0;
}
.venue-public-auth .venue-auth .venue-card {
    padding: 36px 32px 28px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(20, 17, 12, 0.08);
}
.venue-public-auth .venue-auth-kicker {
    margin: 0 0 8px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #9c7a18;
    font-size: 12px;
    font-weight: 600;
}
.venue-public-auth .venue-auth h1 {
    margin: 0 0 8px;
    font-size: 40px;
    line-height: 1.05;
    color: #14110c;
}
.venue-public-auth .venue-auth-lead {
    margin: 0 0 18px;
    color: #6b5e4e;
}
.venue-public-auth .venue-auth .vfield { margin-bottom: 12px; }
.venue-public-auth .venue-auth-submit { margin: 18px 0 14px; }
.venue-public-auth .venue-auth-switch { margin: 0; }
.venue-public-auth .venue-auth-switch a { color: #9c7a18; font-weight: 600; }
.venue-public-auth input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #fffbf7 inset;
    -webkit-text-fill-color: #14110c;
}
@media (max-width: 720px) {
    .venue-public-auth { padding: 16px 12px 40px; }
    .venue-public-auth .venue-auth .venue-card { padding: 24px 16px 20px; }
    .venue-public-auth .venue-auth h1 { font-size: 32px; }
}

body.venue-desk .venue-drop {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 168px;
    margin: 0;
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    color: #6b5e4e !important;
    background: #fff8f1;
    border: 1.5px dashed rgba(156, 122, 24, 0.45);
    border-radius: 16px;
}
body.venue-desk .venue-drop i {
    font-size: 28px;
    color: #c9a227;
    line-height: 1;
}
body.venue-desk .venue-drop strong {
    color: #14110c;
    font-size: 15px;
}
body.venue-desk .venue-drop span,
body.venue-desk .venue-drop em {
    font-style: normal;
    font-size: 13px;
}
body.venue-desk .venue-drop em {
    margin-top: 6px;
    color: #9c7a18;
    font-weight: 600;
}
body.venue-desk .venue-drop-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
body.venue-desk .venue-drop:hover,
body.venue-desk .venue-drop:focus-within {
    border-color: #c9a227;
    background: #fff;
}
body.venue-desk .venue-shots {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
}
body.venue-desk .venue-shot {
    display: flex;
    flex-direction: column;
    background: #fff8f1;
    border: 1px solid rgba(20, 17, 12, 0.08);
    border-radius: 18px;
    overflow: hidden;
}
body.venue-desk .venue-shot-media {
    position: relative;
    height: 180px;
    background: #14110c;
}
body.venue-desk .venue-shot-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.venue-desk .venue-shot-cover {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #14110c;
    color: #e3c463;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
body.venue-desk .venue-shot-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px;
}
body.venue-desk .venue-shot-body strong {
    color: #14110c;
    font-size: 14px;
}
body.venue-desk .venue-shot-body span {
    color: #6b5e4e;
    font-size: 13px;
    line-height: 1.35;
}
body.venue-desk .venue-shot-actions {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}
body.venue-desk .venue-shot-actions form { margin: 0; }
body.venue-desk .venue-shot-empty {
    text-align: center;
    padding: 48px 20px;
    color: #6b5e4e;
    background: #fff8f1;
    border: 1px dashed rgba(156, 122, 24, 0.35);
    border-radius: 18px;
}
body.venue-desk .venue-shot-empty i {
    font-size: 32px;
    color: #c9a227;
}
body.venue-desk .venue-shot-empty h6 {
    margin: 8px 0 4px;
    color: #14110c;
    font-size: 16px;
}
body.venue-desk .venue-shot-empty p {
    margin: 0 auto;
    max-width: 420px;
}
