/* Reset e Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: #f5f5f5;
    color: #1a1a1a;
    line-height: 1.6;
}

/* Layout Principal */
.app-container {
    display: flex;
    height: 100vh;
}

.sidebar {
    width: 280px;
    background: #1a1a1a;
    color: white;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #333;
    overflow-y: auto;
    position: relative;
}

.sidebar-header {
    padding: 1.5rem;
    border-bottom: 1px solid #333;
}

.sidebar-title {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.5px;
}

.sidebar-subtitle {
    font-size: 0.75rem;
    color: #999;
    margin-top: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sidebar-nav {
    flex: 1;
    padding: 1rem 0;
}

.nav-item {
    padding: 0.875rem 1.5rem;
    display: block;
    color: #ccc;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: all 0.2s ease;
    cursor: pointer;
}

.nav-item:hover {
    background: #2a2a2a;
    color: white;
}

.nav-item.active {
    background: #2a2a2a;
    color: white;
    border-left-color: white;
}

.sidebar-footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid #333;
    font-size: 0.875rem;
}

.user-info {
    margin-bottom: 0.5rem;
    color: #ccc;
    word-break: break-all;
}

.logout-btn {
    background: #333;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.875rem;
    width: 100%;
    margin-top: 0.5rem;
    transition: background 0.2s ease;
}

.logout-btn:hover {
    background: #444;
}

.main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.topbar {
    background: white;
    border-bottom: 1px solid #e0e0e0;
    padding: 1rem 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.topbar-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1a1a1a;
}

.topbar-status {
    font-size: 0.875rem;
    color: #666;
}

.content {
    flex: 1;
    overflow-y: auto;
    padding: 2rem;
}

.content-inner {
    max-width: 1400px;
    margin: 0 auto;
}

/* Componentes */
.card {
    background: white;
    border-radius: 4px;
    border: 1px solid #e0e0e0;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.card-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #1a1a1a;
}

.form-group {
    margin-bottom: 1rem;
}

.form-group label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: #1a1a1a;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    font-family: inherit;
    font-size: 1rem;
    transition: border-color 0.2s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #1a1a1a;
}

.button {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.button-primary {
    background: #1a1a1a;
    color: white;
}

.button-primary:hover {
    background: #333;
}

.button-secondary {
    background: #e0e0e0;
    color: #1a1a1a;
}

.button-secondary:hover {
    background: #d0d0d0;
}

.button-danger {
    background: #d32f2f;
    color: white;
}

.button-danger:hover {
    background: #b71c1c;
}

.button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.button-group {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}

/* Tabelas */
table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
}

thead {
    background: #f9f9f9;
    border-bottom: 1px solid #e0e0e0;
}

th {
    text-align: left;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #1a1a1a;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9375rem;
}

tbody tr:hover {
    background: #f9f9f9;
}

tbody tr:last-child td {
    border-bottom: none;
}

/* Status badges */
.badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge-info {
    background: #e3f2fd;
    color: #1976d2;
}

.badge-success {
    background: #e8f5e9;
    color: #388e3c;
}

.badge-warning {
    background: #fff3e0;
    color: #f57c00;
}

.badge-error {
    background: #ffebee;
    color: #d32f2f;
}

.badge-demo {
    background: #fff9c4;
    color: #f57f17;
}

/* Calendário */
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
}

.calendar-header {
    text-align: center;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    padding: 0.5rem;
}

.calendar-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.875rem;
    transition: all 0.2s ease;
}

.calendar-day:hover {
    background: #f0f0f0;
    border-color: #1a1a1a;
}

.calendar-day.disabled {
    color: #ccc;
    cursor: not-allowed;
}

.calendar-day.selected {
    background: #1a1a1a;
    color: white;
    border-color: #1a1a1a;
}

.calendar-day.today {
    border-color: #1a1a1a;
    border-width: 2px;
}

/* Modal */
.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.modal.active {
    display: flex;
}

.modal-content {
    background: white;
    border-radius: 4px;
    padding: 2rem;
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.modal-header {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: #666;
}

/* Alert */
.alert {
    padding: 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
    font-size: 0.9375rem;
}

.alert-info {
    background: #e3f2fd;
    color: #1565c0;
    border-left: 4px solid #1565c0;
}

.alert-success {
    background: #e8f5e9;
    color: #2e7d32;
    border-left: 4px solid #2e7d32;
}

.alert-warning {
    background: #fff3e0;
    color: #e65100;
    border-left: 4px solid #e65100;
}

.alert-error {
    background: #ffebee;
    color: #c62828;
    border-left: 4px solid #c62828;
}

/* Loader */
.loading {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 2px solid #e0e0e0;
    border-top-color: #1a1a1a;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Demo Badge */
.demo-banner {
    background: #fff9c4;
    border: 1px solid #f57f17;
    color: #f57f17;
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    margin-bottom: 1.5rem;
    font-weight: 500;
}

/* Responsividade Mobile */
@media (max-width: 768px) {
    .app-container {
        flex-direction: column;
    }

    .sidebar {
        width: 100%;
        height: auto;
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 999;
        max-height: 70vh;
        border-right: none;
        border-top: 1px solid #333;
    }

    .sidebar.mobile-open {
        display: flex;
    }

    .main-content {
        height: 100vh;
        padding-bottom: 60px;
    }

    .content {
        padding: 1.5rem 1rem;
    }

    .topbar {
        padding: 1rem;
    }

    .sidebar-header {
        display: none;
    }

    .nav-item {
        padding: 0.75rem 1.5rem;
        font-size: 0.95rem;
    }

    .sidebar-footer {
        padding: 0.75rem 1.5rem;
    }

    .button-group {
        flex-direction: column;
    }

    .button {
        width: 100%;
    }

    table {
        font-size: 0.875rem;
    }

    th, td {
        padding: 0.5rem 0.75rem;
    }

    .card {
        padding: 1rem;
    }

    .modal-content {
        width: 95%;
        padding: 1.5rem;
    }

    .calendar-grid {
        gap: 0.25rem;
    }
}

@media (max-width: 430px) {
    html {
        font-size: 15px;
    }

    .topbar-title {
        font-size: 1.1rem;
    }

    .card-title {
        font-size: 1rem;
    }

    th {
        font-size: 0.75rem;
    }

    td {
        font-size: 0.875rem;
    }

    .button {
        padding: 0.65rem 1.25rem;
        font-size: 0.95rem;
    }

    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px;
    }

    .calendar-grid {
        grid-template-columns: repeat(7, 1fr);
    }
}

/* Visibilidade */
.hidden {
    display: none;
}

.text-muted {
    color: #999;
}

.text-center {
    text-align: center;
}

.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }


/* Kira-CEO — refinamentos operacionais */

.nav-item[aria-current="page"] { font-weight: 700; }
.button:disabled { opacity: .48; cursor: not-allowed; }
input[type="number"] { font-variant-numeric: tabular-nums; }
@media (max-width: 768px) {
  .content-inner { padding-bottom: 5rem; }
  table { min-width: 680px; }
  .card { overflow-x: auto; }
}


/* ============================================================
   Brooklyn Presentation Theme — Kira-CEO
   ============================================================ */
:root {
    --brooklyn-bg: #0b0b0b;
    --brooklyn-panel: #121212;
    --brooklyn-line: #2a2a2a;
    --brooklyn-text: #f4f1e9;
    --brooklyn-muted: #aaa59a;
    --brooklyn-gold: #c89b36;
    --brooklyn-gold-soft: #e1bd68;
}
body { background: var(--brooklyn-bg); color: var(--brooklyn-text); }
.sidebar { background: #080808; border-right-color: #252525; }
.sidebar-header, .sidebar-footer { border-color: #252525; }
.sidebar-brand { display:flex; align-items:center; gap:.85rem; }
.sidebar-brand-mark { width:42px; height:42px; border:1px solid rgba(200,155,54,.45); border-radius:50%; display:grid; place-items:center; color:var(--brooklyn-gold-soft); font-size:1.35rem; background:radial-gradient(circle at 50% 35%, rgba(200,155,54,.18), transparent 65%); }
.sidebar-title { color:#fff; font-size:.95rem; letter-spacing:.04em; }
.sidebar-subtitle { color:#8f8a80; letter-spacing:.08em; }
.nav-item { color:#a9a69f; border-left-color:transparent; }
.nav-item:hover { background:#121212; color:#fff; }
.nav-item.active { background:linear-gradient(90deg, rgba(200,155,54,.16), rgba(200,155,54,.02)); color:#fff; border-left-color:var(--brooklyn-gold); }
.main-content { background:radial-gradient(circle at 78% -10%, rgba(200,155,54,.08), transparent 28rem), var(--brooklyn-bg); }
.topbar { background:rgba(11,11,11,.94); border-bottom-color:#252525; box-shadow:none; backdrop-filter:blur(12px); }
.topbar-title { color:#fff; }
.topbar-status, .text-muted, .user-info { color:var(--brooklyn-muted); }
.card { background:var(--brooklyn-panel); border-color:var(--brooklyn-line); box-shadow:none; border-radius:10px; }
.card-title, .form-group label, th { color:var(--brooklyn-text); }
.card p { color:#c9c5bc; }
.form-group input, .form-group select, .form-group textarea { background:#0d0d0d; border-color:#333; color:#fff; border-radius:7px; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--brooklyn-gold); box-shadow:0 0 0 3px rgba(200,155,54,.10); }
.button { border-radius:7px; font-weight:650; }
.button-primary { background:var(--brooklyn-gold); color:#0a0a0a; }
.button-primary:hover { background:var(--brooklyn-gold-soft); }
.button-secondary { background:#202020; color:#f4f1e9; border:1px solid #343434; }
.button-secondary:hover { background:#292929; }
table, thead { background:var(--brooklyn-panel); border-color:var(--brooklyn-line); }
thead { background:#0f0f0f; }
td { border-bottom-color:#242424; color:#dedad1; }
tbody tr:hover { background:#181818; }
.brand-hero { position:relative; overflow:hidden; background:linear-gradient(115deg, rgba(200,155,54,.16), transparent 42%), #10100f; border:1px solid rgba(200,155,54,.28); border-radius:14px; padding:clamp(1.5rem, 4vw, 3.4rem); margin-bottom:1.5rem; }
.brand-hero::after { content:""; position:absolute; width:280px; height:280px; right:-80px; top:-120px; border:1px solid rgba(200,155,54,.16); border-radius:50%; }
.brand-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(190px,.55fr); align-items:center; gap:2rem; }
.brand-eyebrow { color:var(--brooklyn-gold-soft); font-size:.75rem; font-weight:750; letter-spacing:.14em; margin-bottom:.9rem; }
.brand-hero h1 { max-width:800px; font-size:clamp(2rem,5vw,4rem); line-height:1.02; letter-spacing:-.045em; color:#fff; margin:0 0 1rem; }
.brand-hero p { color:#bdb8ae; max-width:650px; font-size:1.02rem; }
.brand-actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.5rem; }
.brand-seal { aspect-ratio:1; border:1px solid rgba(200,155,54,.34); border-radius:50%; display:grid; place-content:center; text-align:center; background:radial-gradient(circle, rgba(200,155,54,.12), transparent 66%); }
.brand-seal .brand-crown { color:var(--brooklyn-gold-soft); font-size:2.3rem; line-height:1; margin-bottom:.5rem; }
.brand-seal strong { color:var(--brooklyn-gold-soft); letter-spacing:.14em; font-size:.95rem; }
.brand-seal span { color:#8f8a80; letter-spacing:.22em; font-size:.55rem; margin-top:.25rem; }
.demo-banner { background:rgba(200,155,54,.10); border-color:rgba(200,155,54,.42); color:#e3c170; border-radius:8px; }
.loading { border-color:#333; border-top-color:var(--brooklyn-gold); }
.calendar-day { border-color:#303030; color:#ddd; }
.calendar-day:hover { background:#191919; border-color:var(--brooklyn-gold); }
.calendar-day.selected { background:var(--brooklyn-gold); color:#0a0a0a; border-color:var(--brooklyn-gold); }
.calendar-day.today { border-color:var(--brooklyn-gold); }
.modal-content { background:var(--brooklyn-panel); color:var(--brooklyn-text); border:1px solid var(--brooklyn-line); }
@media (max-width:768px) {
    .brand-hero-grid { grid-template-columns:1fr; }
    .brand-seal { width:150px; justify-self:start; }
    .brand-actions { flex-direction:column; }
    .brand-actions .button { width:100%; text-align:center; }
}


/* Kira-CEO Finance V2 */
.finance-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.metric-panel {
    background: #111;
    border: 1px solid #292929;
    border-radius: 10px;
    padding: 1rem;
    min-height: 92px;
}
.metric-panel span,
.report-grid span,
.cash-summary span {
    display: block;
    color: #9f9a90;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .35rem;
}
.metric-panel strong {
    color: #fff;
    font-size: 1.35rem;
    font-variant-numeric: tabular-nums;
}
.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}
.section-heading .card-title { margin-bottom: .25rem; }
.cash-summary,
.report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.cash-summary > div,
.report-grid > div {
    border: 1px solid #292929;
    background: #0e0e0e;
    border-radius: 8px;
    padding: .9rem;
}
.cash-summary strong,
.report-grid strong {
    color: #fff;
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}
.table-wrap { width: 100%; overflow-x: auto; }
.inline-actions { display: flex; gap: .35rem; flex-wrap: wrap; }
.compact-action {
    width: auto !important;
    padding: .45rem .7rem !important;
    font-size: .8rem !important;
    margin: 0 !important;
}
.transaction-details {
    margin-top: .5rem;
    min-width: 180px;
}
.transaction-details summary {
    cursor: pointer;
    color: #c6a14b;
    font-size: .78rem;
}
.transaction-list {
    margin-top: .5rem;
    display: grid;
    gap: .45rem;
}
.transaction-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-top: 1px solid #292929;
    padding-top: .45rem;
}
.transaction-row > div {
    display: grid;
    gap: .1rem;
}
.transaction-row span,
.transaction-row small {
    color: #aaa59a;
    font-size: .75rem;
}
.form-card { max-width: 520px; }
.field-help {
    display: block;
    color: #8f8a80;
    margin-top: .4rem;
    font-size: .78rem;
}
.amount-negative { color: #ff8f8f; }
.amount-positive { color: #9bd59b; }

@media (max-width: 1100px) {
    .finance-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .finance-kpis,
    .cash-summary,
    .report-grid {
        grid-template-columns: 1fr;
    }
    .section-heading {
        flex-direction: column;
        align-items: stretch;
    }
    .compact-action { width: 100% !important; }
}


/* ==========================================================
   Brooklyn Editorial V3
   ========================================================== */
/* KIRA_RUNTIME_ACTIONS_PERF_V24: Google Fonts moved to index.html */

:root {
    --bb-ink:#070706;
    --bb-gold:#bd913f;
    --bb-gold-2:#d1aa5b;
    --bb-paper:#eee8da;
    --bb-line:rgba(209,170,91,.22);
}
body { font-family:Inter,Arial,sans-serif; }

.public-shell { background:#a98443; }
.public-shell .sidebar { display:none !important; }
.public-shell .main-content {
    width:100%;
    min-width:0;
    background:linear-gradient(135deg,#b7924f 0%,#a68142 60%,#947037 100%);
}
.public-shell .topbar { display:none; }
.public-shell .content {
    padding:clamp(1rem,3vw,2.8rem);
    overflow-x:hidden;
}
.public-shell .content-inner { max-width:1380px; margin:0 auto; }

.brooklyn-public { animation:brooklynReveal .55s ease both; }

.public-hero {
    min-height:min(760px,calc(100vh - 5rem));
    display:grid;
    grid-template-columns:minmax(0,1.28fr) minmax(390px,.82fr);
    background:var(--bb-ink);
    border:1px solid rgba(0,0,0,.42);
    box-shadow:0 28px 70px rgba(0,0,0,.34);
    overflow:hidden;
}
.public-hero-photo {
    position:relative;
    min-height:680px;
    overflow:hidden;
    isolation:isolate;
}
.public-hero-photo > img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:48% center;
    filter:sepia(.8) saturate(.75) contrast(1.08) brightness(.68);
    transform:scale(1.015);
    transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .6s ease;
}
.public-hero:hover .public-hero-photo > img {
    transform:scale(1.035);
    filter:sepia(.72) saturate(.82) contrast(1.1) brightness(.72);
}
.public-hero-photo-overlay {
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(90deg,rgba(74,48,15,.04),rgba(0,0,0,.18)),
        linear-gradient(0deg,rgba(4,4,4,.72) 0%,transparent 42%),
        rgba(170,126,53,.16);
    mix-blend-mode:multiply;
    pointer-events:none;
}
.photo-brand,.photo-location,.photo-index { position:absolute; z-index:2; }
.photo-brand {
    left:clamp(1.3rem,3vw,2.6rem);
    top:clamp(1.3rem,3vw,2.6rem);
    display:flex;
    align-items:center;
    gap:.72rem;
    color:var(--bb-paper);
}
.photo-crown { color:var(--bb-gold-2); font-size:2rem; line-height:1; }
.photo-brand div { display:grid; line-height:.92; }
.photo-brand strong { font-size:.65rem; letter-spacing:.27em; }
.photo-brand span:last-child {
    font-family:"Roboto Slab",Georgia,serif;
    font-size:1.12rem;
    letter-spacing:.05em;
}
.photo-location {
    left:clamp(1.3rem,3vw,2.6rem);
    bottom:clamp(1.5rem,3vw,2.8rem);
    display:grid;
    color:var(--bb-paper);
}
.photo-location span { font-size:.62rem; letter-spacing:.2em; color:#d6c7a4; }
.photo-location strong {
    font-family:"Roboto Slab",Georgia,serif;
    font-size:clamp(2rem,4vw,3.7rem);
    line-height:.95;
    margin:.2rem 0 .4rem;
}
.photo-location small { color:#c5baa3; font-size:.78rem; }
.photo-index {
    right:1.4rem;
    bottom:.4rem;
    font-family:"Roboto Slab",Georgia,serif;
    color:rgba(255,255,255,.075);
    font-size:clamp(7rem,14vw,13rem);
    line-height:.8;
    letter-spacing:-.09em;
}

.public-hero-copy {
    display:grid;
    grid-template-rows:auto 1fr auto;
    min-width:0;
    padding:clamp(1.5rem,3.4vw,3.6rem);
    border-left:1px solid var(--bb-line);
    background:
        radial-gradient(circle at 100% 0%,rgba(189,145,63,.08),transparent 30rem),
        var(--bb-ink);
}
.hero-mini-nav {
    display:flex;
    align-items:center;
    gap:.72rem;
    color:#8e887d;
    font-size:.62rem;
    letter-spacing:.18em;
    font-weight:700;
}
.hero-mini-dot { width:4px; height:4px; border-radius:50%; background:var(--bb-gold); }
.hero-copy-main { align-self:center; padding:2.4rem 0; }
.hero-eyebrow {
    display:inline-block;
    color:var(--bb-gold-2);
    font-size:.67rem;
    letter-spacing:.22em;
    font-weight:700;
    margin-bottom:1.25rem;
}
.hero-copy-main h1,
.booking-editorial-intro h2 {
    margin:0;
    font-family:"Roboto Slab",Georgia,serif;
    font-weight:900;
    color:var(--bb-paper);
    text-transform:uppercase;
    letter-spacing:-.055em;
}
.hero-copy-main h1 {
    font-size:clamp(3rem,5.7vw,6.4rem);
    line-height:.82;
    max-width:8ch;
}
.hero-copy-main h1 em,
.booking-editorial-intro h2 em { color:var(--bb-gold-2); font-style:normal; }
.hero-copy-main p {
    max-width:37ch;
    color:#aaa397;
    margin:1.5rem 0 0;
    font-size:.93rem;
    line-height:1.65;
}
.hero-cta-row {
    display:flex;
    align-items:center;
    gap:1.35rem;
    margin-top:1.7rem;
    flex-wrap:wrap;
}
.editorial-cta {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:1.7rem;
    min-width:190px;
    padding:.86rem 1rem;
    background:var(--bb-gold-2);
    color:#111;
    text-decoration:none;
    border:1px solid var(--bb-gold-2);
    font-size:.69rem;
    letter-spacing:.12em;
    font-weight:800;
    transition:transform .2s ease,background .2s ease;
}
.editorial-cta:hover { background:#e0bd70; transform:translateY(-2px); }
.editorial-link {
    color:#c7c0b5;
    text-decoration:none;
    font-size:.66rem;
    letter-spacing:.13em;
    font-weight:700;
    border-bottom:1px solid rgba(255,255,255,.28);
    padding-bottom:.24rem;
}
.hero-meta {
    border-top:1px solid var(--bb-line);
    padding-top:1.2rem;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.3rem;
}
.hero-meta > div {
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:.7rem;
}
.hero-meta span {
    color:var(--bb-gold-2);
    font-family:"Roboto Slab",Georgia,serif;
    grid-row:1 / 3;
}
.hero-meta strong { color:#e3ddd0; font-size:.64rem; letter-spacing:.13em; }
.hero-meta small { color:#777269; margin-top:.2rem; }

.public-feature-rail {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    background:#0a0a09;
    border:1px solid rgba(0,0,0,.45);
    border-top:0;
    box-shadow:0 16px 38px rgba(0,0,0,.18);
}
.public-feature-rail > div {
    min-height:128px;
    padding:1.2rem 1.25rem;
    display:grid;
    align-content:center;
    border-right:1px solid var(--bb-line);
}
.public-feature-rail > div:last-child { border-right:0; }
.public-feature-rail span {
    color:var(--bb-gold);
    font-family:"Roboto Slab",Georgia,serif;
    font-size:.7rem;
    margin-bottom:.4rem;
}
.public-feature-rail strong { color:#e7dfd0; font-size:.72rem; letter-spacing:.12em; }
.public-feature-rail small { color:#78736a; margin-top:.35rem; }

.booking-editorial-layout {
    display:grid;
    grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);
    min-height:650px;
    background:var(--bb-ink);
    border:1px solid rgba(0,0,0,.45);
    box-shadow:0 28px 70px rgba(0,0,0,.3);
}
.booking-editorial-intro {
    padding:clamp(1.5rem,4vw,3.5rem);
    background:linear-gradient(180deg,rgba(189,145,63,.08),transparent 38%),#0a0a09;
    border-right:1px solid var(--bb-line);
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.booking-editorial-intro h2 { font-size:clamp(3.1rem,6vw,6.8rem); line-height:.78; }
.booking-editorial-intro > p {
    color:#989188;
    line-height:1.6;
    max-width:29ch;
    margin-top:1.4rem;
}
.booking-aside-meta {
    margin-top:auto;
    padding-top:3rem;
    display:grid;
    color:#8b857b;
    font-size:.62rem;
    letter-spacing:.13em;
}
.booking-aside-meta strong { color:#c8a75d; margin-top:.3rem; }
.booking-editorial-card {
    padding:clamp(1.5rem,4vw,3.6rem);
    background:#11110f;
}
.booking-card-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    border-bottom:1px solid var(--bb-line);
    padding-bottom:1.2rem;
    margin-bottom:2rem;
}
.booking-card-head span { color:var(--bb-gold-2); font-size:.62rem; letter-spacing:.18em; }
.booking-card-head h3 {
    color:#eee7d8;
    margin:.35rem 0 0;
    font-family:"Roboto Slab",Georgia,serif;
    font-size:clamp(1.4rem,2.6vw,2.5rem);
}
.booking-back { color:#89847c; font-size:.64rem; letter-spacing:.11em; text-decoration:none; }
.booking-form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem 1.25rem;
}
.booking-editorial-card .form-group { margin:0; }
.booking-editorial-card .form-group label {
    color:#a59f94;
    font-size:.68rem;
    letter-spacing:.09em;
    text-transform:uppercase;
    margin-bottom:.48rem;
}
.booking-editorial-card .form-group input,
.booking-editorial-card .form-group select {
    min-height:50px;
    background:#090909;
    border:1px solid #2b2925;
    border-radius:0;
    color:#eee7da;
}
.booking-editorial-card .form-group input:focus,
.booking-editorial-card .form-group select:focus {
    border-color:var(--bb-gold);
    box-shadow:0 0 0 1px var(--bb-gold);
}
.booking-customer-block { margin-top:2rem; }
.booking-divider { border-top:1px solid var(--bb-line); padding:1.2rem 0; }
.booking-divider span { color:var(--bb-gold-2); font-size:.62rem; letter-spacing:.16em; }
.booking-actions { margin-top:1.5rem; }
.editorial-button { cursor:pointer; font-family:inherit; }

.public-shell .demo-banner {
    max-width:1380px;
    margin:0 auto 1rem;
    background:rgba(9,9,8,.92);
    color:#c7a65d;
    border:1px solid rgba(209,170,91,.32);
    border-radius:0;
    font-size:.78rem;
}

@keyframes brooklynReveal {
    from { opacity:0; transform:translateY(8px); }
    to { opacity:1; transform:none; }
}

@media (max-width:980px) {
    .public-hero { grid-template-columns:1fr; }
    .public-hero-photo { min-height:460px; }
    .public-hero-copy { border-left:0; border-top:1px solid var(--bb-line); }
    .hero-copy-main h1 { max-width:10ch; font-size:clamp(3.3rem,10vw,6rem); }
    .public-feature-rail { grid-template-columns:1fr 1fr; }
    .booking-editorial-layout { grid-template-columns:1fr; }
    .booking-editorial-intro {
        min-height:380px;
        border-right:0;
        border-bottom:1px solid var(--bb-line);
    }
}

@media (max-width:640px) {
    .public-shell .content { padding:0; }
    .public-hero { min-height:100vh; border:0; box-shadow:none; }
    .public-hero-photo { min-height:48vh; }
    .public-hero-copy { padding:1.35rem 1.15rem 1.6rem; }
    .hero-copy-main { padding:1.7rem 0; }
    .hero-copy-main h1 { font-size:clamp(3.2rem,17vw,5.2rem); }
    .hero-meta { grid-template-columns:1fr; }
    .public-feature-rail { grid-template-columns:1fr; border-left:0; border-right:0; }
    .public-feature-rail > div { border-right:0; border-bottom:1px solid var(--bb-line); }
    .booking-editorial-layout { border:0; box-shadow:none; }
    .booking-editorial-intro { min-height:315px; padding:1.5rem 1.15rem; }
    .booking-editorial-card { padding:1.5rem 1.15rem; }
    .booking-form-grid { grid-template-columns:1fr; }
    .booking-card-head { flex-direction:column; }
    .editorial-cta { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
    .brooklyn-public,
    .public-hero-photo > img,
    .editorial-cta {
        animation:none !important;
        transition:none !important;
    }
}


/* ==========================================================
   Brooklyn Pro UI V4
   Referências estruturais: dashboards de alta densidade
   (Tabler/AdminLTE) + composição editorial para barbearias.
   ========================================================== */

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

.app-container,
.main-content,
.content,
.content-inner {
    min-width: 0;
}

/* ---------- CORREÇÕES DE OVERFLOW PÚBLICO ---------- */
.public-shell .main-content {
    height: auto;
    min-height: 100vh;
    padding-bottom: 0 !important;
}

.public-hero-copy,
.hero-copy-main,
.booking-editorial-intro,
.booking-editorial-card {
    min-width: 0;
    overflow: hidden;
}

.hero-copy-main h1,
.booking-editorial-intro h2 {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.booking-editorial-layout {
    grid-template-columns: minmax(330px, .82fr) minmax(0, 1.45fr);
}

.booking-editorial-intro h2 {
    font-size: clamp(2.65rem, 4.6vw, 5.35rem);
    line-height: .84;
    letter-spacing: -.045em;
}

.brand-marquee {
    overflow: hidden;
    background: #d1aa5b;
    color: #0a0a08;
    border: 1px solid rgba(0,0,0,.5);
    border-top: 0;
}

.brand-marquee > div {
    min-width: max-content;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .72rem 1.1rem;
    animation: marqueeDrift 22s linear infinite;
}

.brand-marquee span {
    font-size: .64rem;
    letter-spacing: .2em;
    font-weight: 800;
}

.brand-marquee i {
    font-style: normal;
    font-size: .7rem;
}

@keyframes marqueeDrift {
    from { transform: translateX(0); }
    to { transform: translateX(-18%); }
}

.public-story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(290px, .72fr);
    border: 1px solid rgba(0,0,0,.48);
    border-top: 0;
    background: #0b0b0a;
}

.story-copy {
    padding: clamp(2rem, 5vw, 5rem);
    border-right: 1px solid rgba(209,170,91,.19);
}

.story-kicker,
.process-head > span,
.location-kicker,
.ops-eyebrow,
.module-heading > div > span {
    display: block;
    color: #cda655;
    font-size: .66rem;
    letter-spacing: .2em;
    font-weight: 750;
    margin-bottom: 1rem;
}

.story-copy h2,
.process-head h2,
.public-final-cta h2,
.location-copy h1,
.module-heading h1 {
    margin: 0;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(2.4rem, 5vw, 5.6rem);
    line-height: .88;
    letter-spacing: -.05em;
}

.story-copy h2 em,
.location-copy h1 em {
    color: #d1aa5b;
    font-style: normal;
}

.story-copy > p {
    max-width: 52ch;
    margin-top: 1.4rem;
    color: #a9a397;
    line-height: 1.7;
}

.story-lines {
    margin-top: 2.5rem;
    border-top: 1px solid rgba(209,170,91,.18);
}

.story-lines > div {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(209,170,91,.18);
}

.story-lines b {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
}

.story-lines span {
    color: #dad3c6;
    font-size: .9rem;
}

.story-poster {
    min-height: 560px;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        linear-gradient(155deg, rgba(17,17,15,.12), rgba(17,17,15,.65)),
        repeating-linear-gradient(
            45deg,
            rgba(0,0,0,.08) 0 1px,
            transparent 1px 14px
        ),
        #b68b42;
    color: #11110f;
}

.poster-top {
    display: grid;
}

.poster-top span,
.poster-bottom span {
    font-size: .62rem;
    letter-spacing: .18em;
    font-weight: 800;
}

.poster-top strong {
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(7rem, 14vw, 13rem);
    line-height: .78;
    letter-spacing: -.08em;
}

.poster-bottom {
    border-top: 1px solid rgba(0,0,0,.34);
    padding-top: 1rem;
}

.poster-bottom p {
    max-width: 28ch;
    margin-top: .7rem;
    color: rgba(0,0,0,.72);
    line-height: 1.55;
}

.public-process {
    display: grid;
    grid-template-columns: .72fr 1.5fr;
    gap: 0;
    background: #11110f;
    border: 1px solid rgba(0,0,0,.48);
    border-top: 0;
}

.process-head {
    padding: clamp(2rem, 4vw, 4rem);
    border-right: 1px solid rgba(209,170,91,.18);
}

.process-head h2 {
    font-size: clamp(2.1rem, 4vw, 4.4rem);
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.process-grid article {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border-right: 1px solid rgba(209,170,91,.18);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 300px;
    transition: background .2s ease, transform .2s ease;
}

.process-grid article:last-child { border-right: 0; }
.process-grid article:hover { background: #151512; }

.process-grid b {
    margin-bottom: auto;
    color: #c69a48;
    font-family: "Roboto Slab", Georgia, serif;
}

.process-grid h3 {
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.35rem;
    letter-spacing: .04em;
}

.process-grid p {
    color: #827d74;
    margin-top: .45rem;
    font-size: .86rem;
}

.public-final-cta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 5rem);
    background: #d1aa5b;
    color: #0c0c0a;
    border: 1px solid rgba(0,0,0,.48);
    border-top: 0;
}

.public-final-cta > div > span {
    font-size: .64rem;
    letter-spacing: .19em;
    font-weight: 800;
}

.public-final-cta h2 {
    color: #0b0b09;
    margin-top: .7rem;
}

.editorial-cta-large {
    background: #0b0b09;
    border-color: #0b0b09;
    color: #eee8da;
    min-width: 230px;
}

.editorial-cta-large:hover {
    background: #1b1b18;
}

.public-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    background: #080807;
    color: #777168;
    border: 1px solid rgba(0,0,0,.48);
    border-top: 0;
    font-size: .57rem;
    letter-spacing: .14em;
}

/* ---------- LOCALIZAÇÃO ---------- */
.location-layout {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    min-height: 650px;
    border: 1px solid #2b2a25;
    background: #0a0a09;
    overflow: hidden;
}

.location-copy {
    padding: clamp(2rem, 5vw, 5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid rgba(209,170,91,.2);
}

.location-copy p {
    max-width: 40ch;
    color: #a6a096;
    margin: 1.5rem 0 2rem;
    line-height: 1.7;
}

.location-map-art {
    position: relative;
    min-height: 650px;
    background: #b38a45;
    overflow: hidden;
}

.map-grid {
    position: absolute;
    inset: 0;
    opacity: .36;
    background-image:
        linear-gradient(rgba(0,0,0,.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,0,0,.18) 1px, transparent 1px);
    background-size: 64px 64px;
}

.map-route {
    position: absolute;
    height: 8px;
    background: #0c0c0a;
    transform-origin: left center;
    opacity: .82;
}

.route-a {
    width: 76%;
    left: 8%;
    top: 38%;
    transform: rotate(18deg);
}

.route-b {
    width: 70%;
    left: 18%;
    top: 66%;
    transform: rotate(-22deg);
}

.map-pin {
    position: absolute;
    left: 54%;
    top: 48%;
    width: 72px;
    height: 72px;
    border: 2px solid #0b0b09;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    background: #d1aa5b;
    box-shadow: 0 14px 40px rgba(0,0,0,.25);
}

.map-pin span {
    position: absolute;
    inset: 22px;
    border-radius: 50%;
    background: #0b0b09;
}

.map-number {
    position: absolute;
    right: -1rem;
    bottom: -2rem;
    color: rgba(0,0,0,.11);
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(9rem, 22vw, 20rem);
    line-height: .7;
    letter-spacing: -.08em;
}

.map-caption {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    display: grid;
    color: #0b0b09;
}

.map-caption span {
    font-size: .62rem;
    letter-spacing: .17em;
}

.map-caption strong {
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 2rem;
}

/* ---------- SHELL INTERNO: PADRÕES DE DASHBOARD PROFISSIONAL ---------- */
body:not(.public-shell) .sidebar {
    width: 252px;
    background:
        linear-gradient(180deg, rgba(201,158,73,.06), transparent 20rem),
        #090908;
    border-right: 1px solid #282722;
}

body:not(.public-shell) .sidebar-header {
    padding: 1.25rem 1.2rem;
    border-bottom-color: #25241f;
}

body:not(.public-shell) .sidebar-brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 4px;
}

body:not(.public-shell) .sidebar-title {
    font-size: .78rem;
    letter-spacing: .1em;
}

body:not(.public-shell) .sidebar-subtitle {
    font-size: .56rem;
    letter-spacing: .11em;
}

body:not(.public-shell) .sidebar-nav {
    padding: .8rem .7rem;
}

body:not(.public-shell) .nav-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: .18rem 0;
    padding: .72rem .78rem;
    border: 1px solid transparent;
    border-left: 1px solid transparent;
    border-radius: 6px;
    color: #9c978d;
    font-size: .82rem;
}

body:not(.public-shell) .nav-item::before {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid #292823;
    color: #756f65;
    font-size: .55rem;
    letter-spacing: .03em;
}

body:not(.public-shell) .nav-item:nth-child(1)::before { content: "01"; }
body:not(.public-shell) .nav-item:nth-child(2)::before { content: "02"; }
body:not(.public-shell) .nav-item:nth-child(3)::before { content: "03"; }
body:not(.public-shell) .nav-item:nth-child(4)::before { content: "04"; }
body:not(.public-shell) .nav-item:nth-child(5)::before { content: "05"; }
body:not(.public-shell) .nav-item:nth-child(6)::before { content: "06"; }
body:not(.public-shell) .nav-item:nth-child(7)::before { content: "07"; }
body:not(.public-shell) .nav-item:nth-child(8)::before { content: "08"; }

body:not(.public-shell) .nav-item:hover {
    background: #11110f;
    color: #eee8da;
    border-color: #25241f;
}

body:not(.public-shell) .nav-item.active {
    background: #16140f;
    color: #f2eadc;
    border-color: rgba(209,170,91,.26);
    border-left-color: #d1aa5b;
}

body:not(.public-shell) .nav-item.active::before {
    color: #d1aa5b;
    border-color: rgba(209,170,91,.4);
}

body:not(.public-shell) .sidebar-footer {
    border-top-color: #25241f;
    background: #0b0b09;
}

body:not(.public-shell) .user-info {
    color: #827c72;
    font-size: .7rem;
}

body:not(.public-shell) .main-content {
    background:
        linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.012) 1px, transparent 1px),
        #0d0d0c;
    background-size: 42px 42px;
}

body:not(.public-shell) .topbar {
    min-height: 72px;
    padding: .85rem 1.7rem;
    background: rgba(10,10,9,.94);
    border-bottom: 1px solid #292824;
    backdrop-filter: blur(16px);
    box-shadow: none;
}

body:not(.public-shell) .topbar-title {
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1rem;
}

body:not(.public-shell) .topbar-status {
    color: #7e786f;
    font-size: .68rem;
    letter-spacing: .04em;
}

body:not(.public-shell) .content {
    padding: 1.6rem;
}

body:not(.public-shell) .content-inner {
    max-width: 1480px;
}

body:not(.public-shell) .card,
body:not(.public-shell) .metric-panel {
    background: rgba(18,18,16,.96);
    border: 1px solid #2b2a26;
    box-shadow: 0 18px 50px rgba(0,0,0,.12);
}

body:not(.public-shell) .card {
    border-radius: 8px;
}

body:not(.public-shell) .card-title {
    font-family: "Roboto Slab", Georgia, serif;
    color: #eee8da;
}

body:not(.public-shell) table {
    border: 0;
    background: transparent;
}

body:not(.public-shell) thead {
    background: #11110f;
    border-bottom-color: #302e29;
}

body:not(.public-shell) th {
    color: #8f897f;
    font-size: .65rem;
    letter-spacing: .08em;
}

body:not(.public-shell) td {
    color: #d9d3c8;
    border-bottom-color: #292823;
}

body:not(.public-shell) tbody tr:hover {
    background: #151512;
}

body:not(.public-shell) .button {
    border-radius: 5px;
    font-size: .86rem;
    font-weight: 700;
}

body:not(.public-shell) .button-primary {
    background: #cda655;
    color: #0a0a08;
}

body:not(.public-shell) .button-primary:hover {
    background: #e0bb69;
}

body:not(.public-shell) .button-secondary {
    background: #1a1a18;
    color: #d8d1c5;
    border: 1px solid #32312d;
}

body:not(.public-shell) .form-group input,
body:not(.public-shell) .form-group select,
body:not(.public-shell) .form-group textarea {
    min-height: 44px;
    background: #0b0b0a;
    color: #eee8da;
    border: 1px solid #302f2a;
    border-radius: 5px;
}

/* ---------- DASHBOARD ---------- */
.ops-dashboard {
    display: grid;
    gap: 1rem;
}

.ops-loading {
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    color: #847e74;
}

.ops-hero {
    min-height: 260px;
    padding: clamp(1.7rem, 4vw, 3.5rem);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    border: 1px solid #302f29;
    background:
        linear-gradient(105deg, rgba(205,166,85,.15), transparent 38%),
        radial-gradient(circle at 90% 0%, rgba(205,166,85,.09), transparent 30rem),
        #11110f;
    overflow: hidden;
    position: relative;
}

.ops-hero::after {
    content: "121";
    position: absolute;
    right: -1rem;
    top: -2rem;
    color: rgba(255,255,255,.025);
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(8rem, 18vw, 16rem);
    letter-spacing: -.1em;
}

.ops-hero > * {
    position: relative;
    z-index: 1;
}

.ops-hero h1 {
    margin: 0;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(3rem, 6vw, 6rem);
    line-height: .82;
    letter-spacing: -.06em;
}

.ops-hero h1 em {
    color: #d1aa5b;
    font-style: normal;
}

.ops-hero p {
    margin-top: 1rem;
    color: #8e887e;
}

.ops-hero-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ops-action-primary {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: .85rem 1rem;
    min-width: 170px;
    background: #d1aa5b;
    color: #0b0b09;
    text-decoration: none;
    font-size: .66rem;
    letter-spacing: .12em;
    font-weight: 800;
}

.ops-action-link,
.ops-panel-head a {
    color: #b4aea3;
    text-decoration: none;
    font-size: .62rem;
    letter-spacing: .1em;
    border-bottom: 1px solid #4a463e;
    padding-bottom: .15rem;
}

.ops-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    border: 1px solid #2c2b27;
    background: #11110f;
}

.ops-kpis article {
    min-height: 126px;
    padding: 1.15rem;
    border-right: 1px solid #2c2b27;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.ops-kpis article:last-child { border-right: 0; }

.ops-kpis span,
.ops-panel-head span,
.agenda-label {
    color: #8f897f;
    font-size: .6rem;
    letter-spacing: .14em;
    font-weight: 750;
}

.ops-kpis strong {
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.75rem;
    line-height: 1;
}

.ops-kpis small {
    color: #6f6a61;
    font-size: .72rem;
}

.ops-main-grid,
.ops-secondary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr);
    gap: 1rem;
}

.ops-panel {
    border: 1px solid #2c2b27;
    background: #11110f;
    padding: 1.2rem;
    min-width: 0;
}

.ops-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #2a2925;
}

.ops-panel-head h2 {
    color: #eee8da;
    margin: .2rem 0 0;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.25rem;
}

.ops-panel-head > strong {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
}

.ops-appointment-list {
    display: grid;
}

.ops-appointment {
    display: grid;
    grid-template-columns: 74px minmax(0,1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .95rem 0;
    border-bottom: 1px solid #272621;
}

.ops-appointment:last-child { border-bottom: 0; }

.ops-time {
    font-family: "Roboto Slab", Georgia, serif;
    color: #d1aa5b;
    font-size: 1.05rem;
}

.ops-appt-main {
    min-width: 0;
    display: grid;
}

.ops-appt-main strong {
    color: #e7e0d4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-appt-main span {
    color: #756f66;
    font-size: .72rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 .55rem;
    border: 1px solid #34322d;
    color: #9b958a;
    font-size: .56rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ops-status-in_service { border-color: #9e7e39; color: #d5ae56; }
.ops-status-completed { border-color: #34513d; color: #80b48e; }
.ops-status-no_show,
.ops-status-cancelled { border-color: #573535; color: #c98282; }

.ops-empty {
    padding: 2rem 0;
    display: grid;
    gap: .3rem;
    color: #777168;
}

.ops-empty strong { color: #cfc8bc; }

.ops-chart {
    height: 230px;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .6rem;
    align-items: end;
    padding-top: 1.4rem;
}

.ops-bar-column {
    height: 100%;
    display: grid;
    grid-template-rows: 1fr auto;
    gap: .55rem;
    min-width: 0;
}

.ops-bar-track {
    display: flex;
    align-items: end;
    background:
        repeating-linear-gradient(
            to top,
            #1a1916 0 1px,
            transparent 1px 48px
        );
    border-bottom: 1px solid #35332e;
    min-height: 0;
}

.ops-bar {
    width: 100%;
    min-height: 2px;
    background: linear-gradient(to top, #ad8036, #d4b05f);
    transition: height .35s ease;
}

.ops-bar-column > span {
    text-align: center;
    color: #6f6a61;
    font-size: .58rem;
    text-transform: uppercase;
}

.ops-catalog-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    margin-top: 1.2rem;
}

.ops-catalog-stats > div {
    display: grid;
    gap: .2rem;
    padding: .9rem;
    border-right: 1px solid #292823;
}

.ops-catalog-stats > div:last-child { border-right: 0; }

.ops-catalog-stats strong {
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.7rem;
}

.ops-catalog-stats span {
    color: #79736a;
    font-size: .68rem;
}

.ops-cash-card p {
    color: #8b857b;
    line-height: 1.6;
    margin: 1.2rem 0;
}

.ops-cash-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #7d5353;
    box-shadow: 0 0 0 6px rgba(125,83,83,.08);
}

.ops-cash-card.is-open .ops-cash-dot {
    background: #71a07e;
    box-shadow: 0 0 0 6px rgba(113,160,126,.09);
}

/* ---------- AGENDA PROFISSIONAL ---------- */
.schedule-pro,
.config-pro {
    display: grid;
    gap: 1rem;
}

.module-heading {
    padding: 1.5rem 0 1.2rem;
    border-bottom: 1px solid #302f2a;
}

.module-heading h1 {
    font-size: clamp(2.2rem, 4.4vw, 4.8rem);
}

.module-heading p {
    color: #827c72;
    margin-top: .7rem;
}

.schedule-kpis {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    border: 1px solid #2d2c27;
    background: #11110f;
}

.schedule-kpis > div {
    min-height: 94px;
    padding: 1rem;
    border-right: 1px solid #2d2c27;
    display: grid;
    align-content: center;
    gap: .2rem;
}

.schedule-kpis > div:last-child { border-right:0; }
.schedule-kpis span { color:#777168; font-size:.58rem; letter-spacing:.12em; }
.schedule-kpis strong {
    color:#eee8da;
    font-family:"Roboto Slab",Georgia,serif;
    font-size:1.5rem;
}

.agenda-ticket-list {
    display: grid;
    gap: .75rem;
}

.agenda-ticket {
    display: grid;
    grid-template-columns: 110px minmax(0,1fr);
    border: 1px solid #2d2c27;
    background: #11110f;
    min-width: 0;
}

.agenda-time-block {
    padding: 1.2rem;
    border-right: 1px solid #2d2c27;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #0d0d0c;
}

.agenda-time-block strong {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.45rem;
}

.agenda-time-block span {
    color: #6f6a61;
    font-size: .66rem;
    text-transform: uppercase;
}

.agenda-ticket-main {
    padding: 1.05rem 1.2rem;
    min-width: 0;
}

.agenda-ticket-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.agenda-ticket-top h3 {
    color: #eee8da;
    margin: .15rem 0 0;
    font-size: 1rem;
}

.agenda-meta-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .8rem;
    margin-top: .9rem;
}

.agenda-meta-grid > div {
    display: grid;
    gap: .18rem;
}

.agenda-meta-grid span {
    color: #68635a;
    font-size: .6rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.agenda-meta-grid strong {
    color: #bdb6aa;
    font-size: .78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.agenda-actions {
    margin-top: .9rem;
    display: flex;
    gap: .45rem;
}

/* ---------- CONFIGURAÇÕES ---------- */
.config-module-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: .75rem;
}

.config-module-grid button {
    min-height: 180px;
    padding: 1.2rem;
    border: 1px solid #302f2a;
    background: #11110f;
    color: inherit;
    text-align: left;
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: .45rem;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.config-module-grid button:hover {
    transform: translateY(-2px);
    border-color: rgba(209,170,91,.45);
    background: #151410;
}

.config-module-grid b {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: .7rem;
}

.config-module-grid strong {
    color: #eee8da;
    font-size: .82rem;
    letter-spacing: .08em;
}

.config-module-grid span {
    color: #767067;
    line-height: 1.5;
    font-size: .78rem;
}

.config-module-grid i {
    color: #a89f90;
    font-style: normal;
}

.config-content-pro {
    margin-top: .25rem;
}

.config-placeholder {
    min-height: 170px;
    border: 1px dashed #34322d;
    display: grid;
    place-content: center;
    text-align: center;
    gap: .3rem;
}

.config-placeholder span {
    color: #746e65;
    font-size: .58rem;
    letter-spacing: .16em;
}

.config-placeholder strong {
    color: #bcb5aa;
    font-family: "Roboto Slab", Georgia, serif;
}

/* ---------- FINANCEIRO: MAIS DENSIDADE VISUAL ---------- */
.finance-kpis {
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: .75rem;
}

.metric-panel {
    position: relative;
    overflow: hidden;
    min-height: 116px;
    padding: 1rem;
}

.metric-panel::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, #d1aa5b, transparent 75%);
}

.metric-panel span {
    color: #767067;
    font-size: .58rem;
    letter-spacing: .11em;
}

.metric-panel strong {
    margin-top: .9rem;
    display: block;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.45rem;
}

/* ---------- RESPONSIVIDADE REAL ---------- */
@media (max-width: 1180px) {
    .booking-editorial-layout {
        grid-template-columns: 1fr;
    }

    .booking-editorial-intro {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--bb-line);
        padding: 2.2rem;
    }

    .booking-editorial-intro h2 {
        max-width: 8ch;
        font-size: clamp(3rem, 8vw, 5rem);
    }

    .booking-aside-meta {
        margin-top: 2rem;
    }

    .ops-main-grid,
    .ops-secondary-grid {
        grid-template-columns: 1fr;
    }

    .finance-kpis {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
}

@media (max-width: 900px) {
    .public-story-grid,
    .public-process,
    .location-layout {
        grid-template-columns: 1fr;
    }

    .story-copy,
    .process-head,
    .location-copy {
        border-right: 0;
        border-bottom: 1px solid rgba(209,170,91,.18);
    }

    .story-poster {
        min-height: 380px;
    }

    .process-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .ops-kpis,
    .schedule-kpis {
        grid-template-columns: repeat(2,1fr);
    }

    .ops-kpis article:nth-child(2),
    .schedule-kpis > div:nth-child(2) {
        border-right: 0;
    }

    .ops-kpis article:nth-child(-n+2),
    .schedule-kpis > div:nth-child(-n+2) {
        border-bottom: 1px solid #2c2b27;
    }

    .config-module-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .finance-kpis {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 768px) {
    body:not(.public-shell) .sidebar {
        width: min(88vw, 330px);
        top: 0;
        bottom: 0;
        right: auto;
        max-height: none;
        border-top: 0;
        border-right: 1px solid #302f2a;
        box-shadow: 18px 0 50px rgba(0,0,0,.35);
    }

    body:not(.public-shell) .sidebar.mobile-open {
        display: flex;
    }

    body:not(.public-shell) .sidebar-header {
        display: block;
    }

    body:not(.public-shell) .main-content {
        height: 100dvh;
        padding-bottom: 0;
    }

    body:not(.public-shell) .content {
        padding: 1rem;
    }

    .ops-hero {
        min-height: 320px;
        align-items: flex-start;
        flex-direction: column;
        justify-content: flex-end;
    }

    .ops-hero h1 {
        font-size: clamp(3rem, 14vw, 5.4rem);
    }

    .ops-hero-actions,
    .ops-action-primary {
        width: 100%;
    }

    .ops-appointment {
        grid-template-columns: 62px minmax(0,1fr);
    }

    .ops-appointment > .ops-status {
        grid-column: 2;
        justify-self: start;
    }

    .ops-chart {
        height: 190px;
    }

    .agenda-ticket {
        grid-template-columns: 82px minmax(0,1fr);
    }

    .agenda-ticket-top {
        flex-direction: column;
    }

    .agenda-meta-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .public-shell .content {
        padding: 0 !important;
    }

    .public-hero {
        width: 100%;
        min-height: 100dvh;
    }

    .public-hero-photo {
        min-height: 42vh;
    }

    .public-hero-copy {
        padding: 1.25rem 1rem 1.4rem;
    }

    .hero-copy-main h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(2.55rem, 12.4vw, 3.65rem);
        line-height: .88;
        letter-spacing: -.052em;
    }

    .hero-copy-main p {
        max-width: 100%;
    }

    .hero-cta-row {
        align-items: stretch;
    }

    .editorial-cta {
        width: 100%;
        min-width: 0;
    }

    .editorial-link {
        width: max-content;
    }

    .brand-marquee > div {
        animation: none;
    }

    .story-copy,
    .story-poster,
    .process-head,
    .public-final-cta,
    .location-copy {
        padding: 1.35rem 1rem;
    }

    .story-copy h2,
    .process-head h2,
    .public-final-cta h2,
    .location-copy h1 {
        font-size: clamp(2.3rem, 12vw, 3.5rem);
        overflow-wrap: normal;
        word-break: normal;
    }

    .story-poster {
        min-height: 300px;
    }

    .poster-top strong {
        font-size: 7.5rem;
    }

    .public-process {
        display: block;
    }

    .process-grid {
        grid-template-columns: 1fr;
    }

    .process-grid article {
        min-height: 170px;
        border-right: 0;
        border-bottom: 1px solid rgba(209,170,91,.18);
    }

    .public-final-cta {
        flex-direction: column;
        align-items: stretch;
    }

    .public-footer {
        flex-direction: column;
    }

    .booking-editorial-intro,
    .booking-editorial-card {
        padding: 1.25rem 1rem;
    }

    .booking-editorial-intro h2 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(2.65rem, 13vw, 4rem);
        line-height: .88;
        overflow-wrap: normal;
        word-break: normal;
    }

    .booking-form-grid {
        grid-template-columns: 1fr;
    }

    .location-map-art {
        min-height: 390px;
    }

    .ops-kpis,
    .schedule-kpis,
    .config-module-grid,
    .finance-kpis {
        grid-template-columns: 1fr;
    }

    .ops-kpis article,
    .schedule-kpis > div {
        border-right: 0;
        border-bottom: 1px solid #2c2b27;
    }

    .ops-kpis article:last-child,
    .schedule-kpis > div:last-child {
        border-bottom: 0;
    }

    .ops-catalog-stats {
        grid-template-columns: 1fr;
    }

    .ops-catalog-stats > div {
        border-right: 0;
        border-bottom: 1px solid #292823;
    }

    .ops-catalog-stats > div:last-child {
        border-bottom: 0;
    }

    .agenda-ticket {
        grid-template-columns: 1fr;
    }

    .agenda-time-block {
        border-right: 0;
        border-bottom: 1px solid #2d2c27;
        flex-direction: row;
        align-items: baseline;
        gap: .7rem;
    }

    .agenda-actions {
        flex-direction: column;
    }

    .agenda-actions .button {
        width: 100% !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand-marquee > div {
        animation: none !important;
    }
}


/* ==========================================================
   Brooklyn Visual Refine V6
   ========================================================== */

body.public-shell,
body.public-shell .main-content,
body.public-shell .content {
    background: #080808 !important;
}

body.public-shell .content-inner {
    padding-left: 0;
    padding-right: 0;
}

.brooklyn-public-v6 {
    background: #080808;
}

.public-hero-v6 {
    max-width: 1440px;
    margin: 0 auto;
    background: #0a0a09;
    border: 1px solid #24211b;
    overflow: hidden;
}

.public-hero-v6 .public-hero-photo {
    min-height: 760px;
}

.public-hero-v6 .public-hero-copy {
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.8rem);
    background:
        linear-gradient(180deg, rgba(209,170,91,.06), rgba(209,170,91,0) 45%),
        #0a0a09;
}

.hero-title-v6 {
    margin: 0;
    display: grid;
    gap: .1em;
    line-height: .86;
    letter-spacing: -.055em;
    font-family: "Roboto Slab", Georgia, serif;
    color: #eee8da;
    font-size: clamp(4.2rem, 7.7vw, 7.7rem);
}

.hero-title-v6 span,
.hero-title-v6 em {
    display: block;
}

.hero-title-v6 em {
    color: #d1aa5b;
    font-style: normal;
}

.brooklyn-story-v6 {
    max-width: 1440px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: .8fr 1.15fr 1.05fr;
    border-left: 1px solid #24211b;
    border-right: 1px solid #24211b;
    border-bottom: 1px solid #24211b;
    background:
        radial-gradient(circle at top left, rgba(209,170,91,.09), transparent 32%),
        #0b0b0a;
}

.story-card {
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.35rem);
    border-right: 1px solid #24211b;
}

.story-card:last-child {
    border-right: 0;
}

.story-kicker {
    display: inline-block;
    color: #d1aa5b;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .22em;
    margin-bottom: 1rem;
}

.story-card h2 {
    margin: 0 0 .9rem;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 3.1rem);
    line-height: .95;
}

.story-card p {
    margin: 0;
    color: #9d968a;
    line-height: 1.75;
    max-width: 34ch;
}

.story-card-number {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        linear-gradient(145deg, rgba(209,170,91,.12), rgba(209,170,91,.02) 55%),
        #11100e;
}

.story-number-wrap {
    display: grid;
    gap: .5rem;
    align-content: end;
    min-height: 250px;
}

.story-number-wrap strong {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(5rem, 11vw, 9rem);
    line-height: .85;
    letter-spacing: -.08em;
}

.story-number-wrap small {
    color: #b6afa3;
    font-size: .88rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.story-card-list ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .95rem;
}

.story-card-list li {
    color: #d7d0c4;
    padding-left: 1rem;
    position: relative;
    line-height: 1.65;
}

.story-card-list li::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #d1aa5b;
    position: absolute;
    top: .6rem;
    left: 0;
}

.public-services-v6 {
    max-width: 1440px;
    margin: 0 auto;
    border-left: 1px solid #24211b;
    border-right: 1px solid #24211b;
    border-bottom: 1px solid #24211b;
    background: #090909;
    padding: clamp(1.5rem, 3vw, 2.4rem);
}

.services-v6-head {
    display: grid;
    gap: .85rem;
    margin-bottom: 1.35rem;
}

.services-v6-head h2 {
    margin: 0;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 3.2rem);
    line-height: .95;
}

.services-v6-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1rem;
}

.services-v6-grid article {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid #24211b;
    background:
        linear-gradient(135deg, rgba(209,170,91,.05), transparent 45%),
        #11100f;
}

.services-v6-grid article span {
    display: inline-block;
    margin-bottom: .85rem;
    color: #6f695f;
    font-size: .66rem;
    letter-spacing: .18em;
}

.services-v6-grid article strong {
    display: block;
    color: #eee8da;
    font-size: 1.1rem;
    margin-bottom: .65rem;
}

.services-v6-grid article p {
    margin: 0;
    color: #9f998d;
    line-height: 1.65;
}

/* Localização */
.brooklyn-location-v6-shell {
    background: #080808;
}

.location-v6 {
    max-width: 1440px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr);
    border: 1px solid #24211b;
    background: #0a0a09;
    overflow: hidden;
}

.location-v6-copy {
    min-width: 0;
    padding: clamp(1.8rem, 4.2vw, 4rem);
    background:
        radial-gradient(circle at top left, rgba(209,170,91,.12), transparent 32%),
        #0a0a09;
    border-right: 1px solid #24211b;
}

.location-v6-copy h1 {
    margin: 0;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(3.6rem, 6.2vw, 6.2rem);
    line-height: .83;
    letter-spacing: -.06em;
}

.location-v6-copy h1 em {
    color: #d1aa5b;
    font-style: normal;
}

.location-v6-copy p {
    color: #a19a8e;
    line-height: 1.75;
    max-width: 38ch;
    margin: 1.1rem 0 1.5rem;
}

.location-v6-meta {
    display: grid;
    gap: .8rem;
    margin-bottom: 1.6rem;
}

.location-v6-meta article {
    display: grid;
    gap: .3rem;
    padding: .95rem 1rem;
    border: 1px solid #2d2a25;
    background: #11110f;
}

.location-v6-meta span {
    color: #746e64;
    font-size: .62rem;
    letter-spacing: .16em;
}

.location-v6-meta strong {
    color: #e6dfd3;
}

.location-v6-map {
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr auto;
    background: #0b0b0a;
}

.location-v6-map-head,
.location-v6-map-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .95rem 1rem;
    border-bottom: 1px solid #24211b;
    background: #11110f;
}

.location-v6-map-foot {
    border-top: 1px solid #24211b;
    border-bottom: 0;
}

.location-v6-map-head span,
.location-v6-map-foot span {
    color: #7a7468;
    font-size: .6rem;
    letter-spacing: .18em;
}

.location-v6-map-head strong,
.location-v6-map-foot a {
    color: #d1aa5b;
    text-decoration: none;
    font-size: .7rem;
    letter-spacing: .12em;
    font-weight: 800;
}

.location-v6-map iframe {
    width: 100%;
    min-height: 620px;
    border: 0;
    filter: grayscale(.9) contrast(1.02) brightness(.9);
}

/* All-black laterais no shell público */
body.public-shell .content,
body.public-shell .content-inner,
body.public-shell .main-content {
    background-color: #080808 !important;
}

/* Mobile */
@media (max-width: 920px) {
    .brooklyn-story-v6 {
        grid-template-columns: 1fr;
    }

    .story-card {
        border-right: 0;
        border-bottom: 1px solid #24211b;
    }

    .story-card:last-child {
        border-bottom: 0;
    }

    .services-v6-grid {
        grid-template-columns: 1fr;
    }

    .location-v6 {
        grid-template-columns: 1fr;
    }

    .location-v6-copy {
        border-right: 0;
        border-bottom: 1px solid #24211b;
    }
}

@media (max-width: 768px) {
    .public-hero-v6 {
        border-left: 0;
        border-right: 0;
    }

    .public-hero-v6 .public-hero-photo {
        min-height: 310px;
        max-height: 360px;
    }

    .public-hero-v6 .public-hero-photo img {
        object-position: center center;
    }

    .public-hero-v6 .public-hero-copy {
        padding: 1.3rem 1rem 1.5rem;
    }

    .hero-title-v6 {
        font-size: clamp(3rem, 14vw, 4.45rem);
        line-height: .88;
        letter-spacing: -.05em;
    }

    .hero-title-v6 em {
        font-size: .9em;
    }

    .hero-copy-main p {
        max-width: none;
    }

    .hero-cta-row {
        gap: .75rem;
        flex-wrap: wrap;
    }

    .hero-cta-row .editorial-cta,
    .hero-cta-row .editorial-ghost-link {
        flex: 1 1 180px;
    }

    .brooklyn-story-v6,
    .public-services-v6 {
        border-left: 0;
        border-right: 0;
    }

    .story-card,
    .public-services-v6 {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .story-number-wrap {
        min-height: 0;
    }

    .story-number-wrap strong {
        font-size: clamp(4rem, 25vw, 6.2rem);
    }

    .location-v6 {
        border-left: 0;
        border-right: 0;
    }

    .location-v6-copy {
        padding: 1.3rem 1rem 1.4rem;
    }

    .location-v6-copy h1 {
        font-size: clamp(2.8rem, 14vw, 4.1rem);
    }

    .location-v6-map iframe {
        min-height: 380px;
    }
}


/* BROOKLYN HOME EDITORIAL V12 */

body.public-shell,
body.public-shell .main-content,
body.public-shell .content,
body.public-shell .content-inner,
.brooklyn-home-v12 {
    background: #080808 !important;
}

body.public-shell .content {
    padding: clamp(.75rem, 1.8vw, 1.75rem) !important;
    overflow-x: clip;
}

body.public-shell .content-inner {
    max-width: 1500px;
    margin: 0 auto;
}

.editorial-cta,
.editorial-cta:visited {
    color: #0b0b0a !important;
    background: #d1aa5b;
    border-color: #d1aa5b;
    text-decoration: none;
}

.editorial-cta:hover,
.editorial-cta:focus-visible {
    color: #080808 !important;
    background: #e0bd70;
    border-color: #e0bd70;
    outline: none;
}

.editorial-cta:active {
    color: #080808 !important;
    background: #c79d49;
}

.editorial-ghost-link,
.editorial-ghost-link:visited {
    color: #d8d0c3 !important;
    text-decoration: none;
}

.editorial-ghost-link:hover,
.editorial-ghost-link:focus-visible {
    color: #d1aa5b !important;
    outline: none;
}

.editorial-ghost-link:active {
    color: #b98f43 !important;
}

.public-staff-link,
.public-staff-link:visited {
    color: #8f887c !important;
}

.public-staff-link:hover,
.public-staff-link:focus-visible {
    color: #d1aa5b !important;
    outline: none;
}

.ops-action-primary,
.ops-action-primary:visited {
    color: #0a0a09 !important;
}

.ops-action-link,
.ops-action-link:visited,
.booking-back,
.booking-back:visited {
    color: #c7c0b5 !important;
}

.ops-action-link:hover,
.ops-action-link:focus-visible,
.booking-back:hover,
.booking-back:focus-visible {
    color: #d1aa5b !important;
}

.brooklyn-hero-v12 {
    width: 100%;
    min-height: min(710px, calc(100svh - 2.5rem));
    display: grid;
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
    background: #0b0b0a;
    overflow: hidden;
    position: relative;
    box-shadow: 0 30px 90px rgba(0,0,0,.28);
}

.brooklyn-hero-photo-v12 {
    min-width: 0;
    min-height: 100%;
    margin: 0;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.brooklyn-hero-photo-v12 img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 51% 50%;
    filter: sepia(.68) saturate(.72) contrast(1.06) brightness(.73);
    transform: scale(1.01);
}

.brooklyn-photo-shade-v12 {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(0,0,0,.06), rgba(0,0,0,.08)),
        linear-gradient(0deg, rgba(5,5,5,.76) 0%, rgba(5,5,5,.08) 43%, rgba(5,5,5,.08) 100%);
    pointer-events: none;
}

.brooklyn-photo-brand-v12,
.brooklyn-photo-unit-v12 {
    position: absolute;
    z-index: 2;
}

.brooklyn-photo-brand-v12 {
    top: clamp(1.25rem, 2.5vw, 2.25rem);
    left: clamp(1.25rem, 2.5vw, 2.25rem);
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #eee8da;
}

.brooklyn-photo-mark-v12 {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(209,170,91,.55);
    color: #d1aa5b;
    font-size: 1rem;
}

.brooklyn-photo-brand-v12 div {
    display: grid;
    gap: .18rem;
}

.brooklyn-photo-brand-v12 small,
.brooklyn-photo-unit-v12 small {
    font-size: .56rem;
    letter-spacing: .21em;
    color: #c7b991;
}

.brooklyn-photo-brand-v12 strong {
    font-size: .78rem;
    letter-spacing: .18em;
}

.brooklyn-photo-unit-v12 {
    left: clamp(1.35rem, 3vw, 2.65rem);
    bottom: clamp(1.4rem, 3vw, 2.65rem);
    display: grid;
    color: #eee8da;
}

.brooklyn-photo-unit-v12 strong {
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(2.3rem, 4.1vw, 4.15rem);
    line-height: .92;
    margin: .22rem 0 .45rem;
    letter-spacing: -.045em;
}

.brooklyn-photo-unit-v12 span {
    color: #c2b7a5;
    font-size: .76rem;
}

.brooklyn-hero-copy-v12 {
    min-width: 0;
    padding: clamp(1.65rem, 3.5vw, 3.5rem);
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 1.4rem;
    background: #0b0b0a;
}

.brooklyn-hero-meta-v12 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: #716c63;
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .18em;
    white-space: nowrap;
}

.brooklyn-hero-main-v12 {
    align-self: center;
    min-width: 0;
    padding: 1rem 0;
}

.brooklyn-kicker-v12 {
    display: inline-block;
    color: #d1aa5b;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .23em;
    margin-bottom: 1.15rem;
}

.brooklyn-hero-main-v12 h1 {
    margin: 0;
    display: grid;
    gap: .06em;
    width: min-content;
    max-width: 100%;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-weight: 800;
    font-size: clamp(3.2rem, 4.15vw, 5.2rem);
    line-height: .88;
    letter-spacing: -.045em;
    text-transform: uppercase;
}

.brooklyn-hero-main-v12 h1 span,
.brooklyn-hero-main-v12 h1 em {
    display: block;
    white-space: nowrap;
}

.brooklyn-hero-main-v12 h1 em {
    color: #d1aa5b;
    font-style: normal;
}

.brooklyn-hero-main-v12 > p {
    max-width: 36ch;
    margin: 1.45rem 0 0;
    color: #a39c90;
    font-size: clamp(.88rem, 1vw, .98rem);
    line-height: 1.7;
}

.brooklyn-actions-v12 {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    margin-top: 1.65rem;
    flex-wrap: wrap;
}

.brooklyn-actions-v12 .editorial-cta {
    min-width: 190px;
    min-height: 48px;
    padding: .9rem 1rem;
}

.editorial-ghost-link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-height: 44px;
    padding: .5rem .1rem;
    border-bottom: 1px solid rgba(216,208,195,.32);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .13em;
    transition: color .18s ease, border-color .18s ease;
}

.editorial-ghost-link:hover {
    border-color: #d1aa5b;
}

.brooklyn-hero-foot-v12 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(209,170,91,.18);
}

.brooklyn-hero-foot-v12 div {
    display: grid;
    gap: .25rem;
}

.brooklyn-hero-foot-v12 small {
    color: #625e57;
    font-size: .53rem;
    letter-spacing: .16em;
}

.brooklyn-hero-foot-v12 strong {
    color: #cfc7ba;
    font-size: .68rem;
    letter-spacing: .09em;
}

.brooklyn-editorial-v12 {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 5vw, 5rem);
    padding: clamp(4rem, 8vw, 7rem) clamp(1rem, 5vw, 4.5rem);
    background: #080808;
    border-bottom: 1px solid #1d1c19;
}

.brooklyn-editorial-heading-v12 {
    min-width: 0;
    align-self: start;
}

.brooklyn-editorial-heading-v12 h2 {
    margin: 0;
    max-width: 11ch;
    color: #eee8da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(2.8rem, 5.15vw, 5.8rem);
    font-weight: 800;
    line-height: .9;
    letter-spacing: -.045em;
}

.brooklyn-editorial-heading-v12 h2 em {
    display: block;
    color: #d1aa5b;
    font-style: normal;
}

.brooklyn-editorial-copy-v12 {
    min-width: 0;
    align-self: end;
    padding-top: clamp(1rem, 5vw, 4rem);
}

.brooklyn-editorial-copy-v12 > p {
    max-width: 46ch;
    margin: 0 0 2.2rem;
    color: #aaa297;
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    line-height: 1.75;
}

.brooklyn-editorial-lines-v12 {
    border-top: 1px solid #2a2823;
}

.brooklyn-editorial-lines-v12 > div {
    display: grid;
    grid-template-columns: 48px 150px minmax(0,1fr);
    gap: 1rem;
    align-items: center;
    min-height: 82px;
    padding: .9rem 0;
    border-bottom: 1px solid #2a2823;
}

.brooklyn-editorial-lines-v12 span {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: .76rem;
}

.brooklyn-editorial-lines-v12 strong {
    color: #e6dfd3;
    font-size: .72rem;
    letter-spacing: .11em;
}

.brooklyn-editorial-lines-v12 small {
    color: #817b72;
    line-height: 1.55;
}

.brooklyn-signature-v12 {
    min-height: 170px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 4vw, 3.8rem) clamp(1rem, 5vw, 4.5rem);
    background: #0c0c0b;
    border-bottom: 1px solid #1d1c19;
}

.brooklyn-signature-v12 div {
    display: grid;
    gap: .35rem;
}

.brooklyn-signature-v12 span {
    color: #d1aa5b;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(2.4rem, 4.5vw, 4.8rem);
    line-height: .9;
    letter-spacing: -.04em;
}

.brooklyn-signature-v12 strong {
    color: #8d867b;
    font-size: .62rem;
    letter-spacing: .16em;
}

.brooklyn-signature-v12 p {
    margin: 0;
    color: #eee8da;
    font-size: .7rem;
    letter-spacing: .24em;
    text-align: right;
}

.brooklyn-footer-v12 {
    background: #080808;
    border-top: 0 !important;
}

@media (max-width: 1180px) {
    .brooklyn-hero-v12 {
        grid-template-columns: minmax(0, 55%) minmax(0, 45%);
    }

    .brooklyn-hero-copy-v12 {
        padding: clamp(1.4rem, 3vw, 2.4rem);
    }

    .brooklyn-hero-main-v12 h1 {
        font-size: clamp(3rem, 4.45vw, 4.25rem);
    }

    .brooklyn-editorial-lines-v12 > div {
        grid-template-columns: 42px 125px minmax(0,1fr);
    }
}

@media (max-width: 900px) {
    body.public-shell .content {
        padding: 0 !important;
    }

    .brooklyn-hero-v12 {
        grid-template-columns: 1fr;
        min-height: 0;
        box-shadow: none;
    }

    .brooklyn-hero-photo-v12 {
        min-height: clamp(300px, 46svh, 430px);
    }

    .brooklyn-hero-photo-v12 img {
        object-position: 52% 48%;
    }

    .brooklyn-hero-copy-v12 {
        padding: 1.5rem clamp(1rem, 5vw, 2rem) 1.7rem;
        gap: 1.25rem;
    }

    .brooklyn-hero-main-v12 {
        padding: 1.2rem 0 .6rem;
    }

    .brooklyn-hero-main-v12 h1 {
        font-size: clamp(3rem, 9vw, 5rem);
    }

    .brooklyn-editorial-v12 {
        grid-template-columns: 1fr;
        gap: 2.2rem;
    }

    .brooklyn-editorial-copy-v12 {
        padding-top: 0;
    }
}

@media (max-width: 430px) {
    html,
    body {
        max-width: 100%;
        overflow-x: clip;
    }

    .brooklyn-hero-photo-v12 {
        min-height: 310px;
        max-height: 340px;
    }

    .brooklyn-photo-brand-v12 {
        top: 1rem;
        left: 1rem;
    }

    .brooklyn-photo-unit-v12 {
        left: 1rem;
        bottom: 1rem;
    }

    .brooklyn-photo-unit-v12 strong {
        font-size: 2.45rem;
    }

    .brooklyn-hero-copy-v12 {
        padding: 1.2rem 1rem 1.35rem;
    }

    .brooklyn-hero-meta-v12 {
        font-size: .5rem;
        gap: .5rem;
    }

    .brooklyn-kicker-v12 {
        margin-bottom: .9rem;
    }

    .brooklyn-hero-main-v12 h1 {
        font-size: clamp(2.55rem, 12.4vw, 3.4rem);
        line-height: .9;
        letter-spacing: -.04em;
    }

    .brooklyn-hero-main-v12 > p {
        margin-top: 1.1rem;
        font-size: .9rem;
        line-height: 1.62;
    }

    .brooklyn-actions-v12 {
        display: grid;
        grid-template-columns: 1fr;
        gap: .6rem;
        margin-top: 1.25rem;
    }

    .brooklyn-actions-v12 .editorial-cta,
    .brooklyn-actions-v12 .editorial-ghost-link {
        width: 100%;
        min-width: 0;
    }

    .brooklyn-actions-v12 .editorial-ghost-link {
        justify-content: space-between;
        padding: .8rem 0;
    }

    .brooklyn-hero-foot-v12 {
        gap: .6rem;
    }

    .brooklyn-editorial-v12 {
        padding: 3.4rem 1rem;
    }

    .brooklyn-editorial-heading-v12 h2 {
        font-size: clamp(2.5rem, 12vw, 3.35rem);
    }

    .brooklyn-editorial-copy-v12 > p {
        font-size: .96rem;
    }

    .brooklyn-editorial-lines-v12 > div {
        grid-template-columns: 36px minmax(0,1fr);
        gap: .45rem .8rem;
        align-items: start;
        padding: 1rem 0;
    }

    .brooklyn-editorial-lines-v12 strong {
        align-self: center;
    }

    .brooklyn-editorial-lines-v12 small {
        grid-column: 2;
    }

    .brooklyn-signature-v12 {
        min-height: 150px;
        align-items: start;
        flex-direction: column;
        justify-content: center;
        padding: 2rem 1rem;
    }

    .brooklyn-signature-v12 p {
        text-align: left;
    }
}

@media (max-width: 390px) {
    .brooklyn-hero-main-v12 h1 {
        font-size: clamp(2.45rem, 12vw, 3.1rem);
    }
}

@media (max-width: 360px) {
    .brooklyn-hero-main-v12 h1 {
        font-size: 2.6rem;
    }

    .brooklyn-hero-meta-v12 {
        white-space: normal;
    }

    .brooklyn-photo-brand-v12 strong {
        font-size: .72rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .editorial-cta,
    .editorial-ghost-link {
        transition: none !important;
    }
}


/* =========================================================
   KIRA SIDEBAR PREMIUM V13
   Escopo: sidebar + botão hambúrguer mobile
   ========================================================= */

:root {
    --kira-sidebar-bg: #080808;
    --kira-sidebar-panel: #0d0d0c;
    --kira-sidebar-line: rgba(207, 167, 80, 0.16);
    --kira-sidebar-gold: #cfa750;
    --kira-sidebar-gold-soft: #ddb96b;
    --kira-sidebar-text: #eee8da;
    --kira-sidebar-muted: #827c72;
}

.sidebar {
    width: 252px;
    flex: 0 0 252px;
    background:
        linear-gradient(180deg, rgba(207, 167, 80, 0.025) 0%, transparent 24%),
        var(--kira-sidebar-bg);
    border-right: 1px solid var(--kira-sidebar-line);
    box-shadow: 18px 0 50px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.sidebar-header {
    padding: 22px 20px 20px;
    border-bottom: 1px solid var(--kira-sidebar-line);
    background:
        linear-gradient(135deg, rgba(207, 167, 80, 0.055), transparent 60%);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.sidebar-brand-mark {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(207, 167, 80, 0.44);
    border-radius: 3px;
    color: var(--kira-sidebar-gold);
    background:
        linear-gradient(145deg, rgba(207, 167, 80, 0.10), rgba(207, 167, 80, 0.015));
    box-shadow: inset 0 0 20px rgba(207, 167, 80, 0.035);
}

.sidebar-title {
    color: var(--kira-sidebar-text);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.13em;
}

.sidebar-subtitle {
    margin-top: 4px;
    color: #6f695f;
    font-size: 0.50rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 11px 22px;
}

.nav-item {
    position: relative;
    min-height: 52px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 3px;
    color: #989187;
    text-decoration: none;
    font-size: 0.79rem;
    font-weight: 500;
    transition:
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        transform 180ms ease;
}

.nav-item::before {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 1px solid #292722;
    color: #5f5a52;
    font-size: 0.48rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    transition:
        color 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}

.nav-item:nth-child(1)::before { content: "01"; }
.nav-item:nth-child(2)::before { content: "02"; }
.nav-item:nth-child(3)::before { content: "03"; }
.nav-item:nth-child(4)::before { content: "04"; }
.nav-item:nth-child(5)::before { content: "05"; }
.nav-item:nth-child(6)::before { content: "06"; }
.nav-item:nth-child(7)::before { content: "07"; }
.nav-item:nth-child(8)::before { content: "08"; }

.nav-item::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    width: 2px;
    height: 0;
    background: var(--kira-sidebar-gold);
    transform: translateY(-50%);
    transition: height 180ms ease;
}

.nav-item:hover {
    color: var(--kira-sidebar-text);
    border-color: rgba(207, 167, 80, 0.16);
    background:
        linear-gradient(90deg, rgba(207, 167, 80, 0.075), rgba(207, 167, 80, 0.012));
    transform: translateX(2px);
}

.nav-item:hover::before {
    color: var(--kira-sidebar-gold-soft);
    border-color: rgba(207, 167, 80, 0.42);
    background: rgba(207, 167, 80, 0.035);
    box-shadow: 0 0 18px rgba(207, 167, 80, 0.05);
}

.nav-item:hover::after {
    height: 18px;
}

.nav-item.active,
.nav-item[aria-current="page"] {
    color: var(--kira-sidebar-text);
    border-color: rgba(207, 167, 80, 0.30);
    background:
        linear-gradient(90deg, rgba(207, 167, 80, 0.105), rgba(207, 167, 80, 0.018) 72%);
}

.nav-item.active::before,
.nav-item[aria-current="page"]::before {
    color: var(--kira-sidebar-gold-soft);
    border-color: rgba(207, 167, 80, 0.55);
    background: rgba(207, 167, 80, 0.065);
}

.nav-item.active::after,
.nav-item[aria-current="page"]::after {
    height: 24px;
}

.nav-item[data-page="acesso-interno"] {
    margin-top: 13px;
    border-color: rgba(207, 167, 80, 0.26);
    color: #c8bca7;
    background:
        linear-gradient(110deg, rgba(207, 167, 80, 0.065), transparent 70%);
}

.nav-item[data-page="acesso-interno"]::before {
    color: var(--kira-sidebar-gold);
    border-color: rgba(207, 167, 80, 0.38);
}

.nav-item[data-page="acesso-interno"]:hover {
    color: var(--kira-sidebar-text);
    border-color: rgba(207, 167, 80, 0.55);
    background:
        linear-gradient(110deg, rgba(207, 167, 80, 0.12), rgba(207, 167, 80, 0.02));
    box-shadow: inset 0 0 28px rgba(207, 167, 80, 0.035);
}

.sidebar-footer {
    margin-top: auto;
    padding: 16px 20px;
    border-top: 1px solid var(--kira-sidebar-line);
    background: #080808;
}

.sidebar-footer .user-info {
    color: #756f65;
    font-size: 0.66rem;
    line-height: 1.5;
}

.mobile-menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(207, 167, 80, 0.24);
    border-radius: 3px;
    background: #0d0d0c;
    color: var(--kira-sidebar-gold);
    cursor: pointer;
    transition:
        border-color 180ms ease,
        background-color 180ms ease;
}

.mobile-menu-toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle:focus-visible {
    border-color: rgba(207, 167, 80, 0.50);
    background: #12110f;
    outline: none;
}

@media (max-width: 768px) {
    .mobile-menu-toggle {
        display: grid;
    }

    .sidebar {
        display: flex !important;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 1200;
        width: min(86vw, 320px);
        height: 100dvh;
        flex-direction: column;
        transform: translateX(-104%);
        transition:
            transform 280ms cubic-bezier(.22, .8, .22, 1),
            box-shadow 280ms ease;
        border-top: 0;
        box-shadow: none;
        visibility: visible;
    }

    .sidebar.sidebar-open {
        transform: translateX(0);
        box-shadow: 30px 0 80px rgba(0, 0, 0, 0.58);
    }

    .sidebar-header {
        display: block;
    }

    .sidebar-nav {
        overflow-y: auto;
        padding-top: 16px;
        padding-bottom: 28px;
    }

    .nav-item {
        min-height: 54px;
        font-size: 0.82rem;
    }

    body.sidebar-menu-open {
        overflow: hidden;
    }

    body.public-shell .sidebar {
        display: none !important;
    }
}


/* KIRA AGENDA STABILITY V14 */

.agenda-ticket {
    transition:
        opacity 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease;
}

.agenda-ticket.is-updating {
    opacity: .68;
    border-color: rgba(209, 170, 91, .34);
}

.agenda-ticket.is-updating .agenda-ticket-main {
    pointer-events: none;
}

.agenda-actions .compact-action:disabled {
    cursor: wait;
    opacity: .58;
    transform: none !important;
}

.agenda-actions .compact-action:disabled:hover {
    transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .agenda-ticket {
        transition: none !important;
    }
}


/* KIRA FINANCE STABILITY V15 */

#open-cash-submit[aria-busy="true"],
#close-cash-submit[aria-busy="true"],
#checkout-submit[aria-busy="true"],
#cash-adjustment-submit[aria-busy="true"],
#refund-submit[aria-busy="true"],
#payout-submit[aria-busy="true"] {
    cursor: wait;
    opacity: .62;
    transform: none !important;
}

.transaction-details summary {
    cursor: pointer;
    user-select: none;
}

.transaction-details summary:hover {
    color: #d1aa5b;
}


/* KIRA REPORTS ACCURACY V16 */

.reports-pro {
    display: grid;
    gap: 1rem;
}

.reports-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.reports-refresh-meta {
    display: grid;
    gap: .25rem;
    text-align: right;
    min-width: max-content;
    padding-bottom: .15rem;
}

.reports-refresh-meta span,
.report-section-head > div > span {
    color: #817a70;
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .14em;
}

.reports-refresh-meta strong {
    color: #cfc7ba;
    font-size: .72rem;
    font-weight: 600;
}

.reports-kpis {
    margin-bottom: 0;
}

.report-section-card {
    margin: 0;
}

.report-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 2rem;
    margin-bottom: 1.35rem;
}

.report-section-head > div {
    display: grid;
    gap: .35rem;
}

.report-section-head .card-title {
    margin: 0;
}

.report-section-head > p {
    max-width: 44ch;
    margin: 0;
    color: #7f796f;
    font-size: .75rem;
    line-height: 1.55;
    text-align: right;
}

.reports-pro .report-grid strong,
.reports-pro table td,
.reports-pro table strong {
    font-variant-numeric: tabular-nums;
}

.reports-pro .amount-negative {
    color: #d9a1a1;
}

@media (max-width: 900px) {
    .reports-heading,
    .report-section-head {
        align-items: start;
        flex-direction: column;
        gap: 1rem;
    }

    .reports-refresh-meta {
        text-align: left;
    }

    .report-section-head > p {
        text-align: left;
    }
}


/* KIRA CONFIG OPERATIONS V18 */

.config-list-card,
.config-edit-card {
    margin: 0;
}

.config-list-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.4rem;
}

.config-list-head > div {
    display: grid;
    gap: .3rem;
}

.config-list-head > div > span,
.config-form-heading > span {
    color: #d1aa5b;
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.config-list-head .card-title,
.config-form-heading .card-title {
    margin: 0;
}

.config-list-head p {
    max-width: 52ch;
    margin: 0;
    color: #817b71;
    font-size: .76rem;
    line-height: 1.55;
}

.config-status,
.config-access-linked {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: .25rem .55rem;
    border: 1px solid #2d2b26;
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.config-status.is-active {
    color: #83b68e;
    border-color: rgba(94, 150, 108, .38);
    background: rgba(94, 150, 108, .055);
}

.config-status.is-inactive {
    color: #918a80;
}

.config-access-linked {
    color: #d1aa5b;
    border-color: rgba(209, 170, 91, .28);
}

.config-form-heading {
    display: grid;
    gap: .35rem;
    margin-bottom: 1.4rem;
}

.config-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .9rem;
}

.config-toggle-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
    padding: 1rem 0;
    margin-bottom: 1rem;
    border-top: 1px solid #292722;
    border-bottom: 1px solid #292722;
    cursor: pointer;
}

.config-toggle-row input {
    margin-top: .2rem;
}

.config-toggle-row span {
    display: grid;
    gap: .22rem;
}

.config-toggle-row strong {
    color: #e5ded1;
    font-size: .78rem;
}

.config-toggle-row small {
    color: #7c766d;
    line-height: 1.5;
}

.config-linked-note {
    padding: .85rem 1rem;
    margin-bottom: 1rem;
    border-left: 2px solid #d1aa5b;
    background: rgba(209, 170, 91, .045);
}

.config-linked-note span {
    color: #d1aa5b;
    font-size: .55rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.config-linked-note p {
    margin: .35rem 0 0;
    color: #8e877c;
    font-size: .74rem;
    line-height: 1.55;
}

#service-save-submit[aria-busy="true"],
#professional-save-submit[aria-busy="true"] {
    cursor: wait;
    opacity: .62;
}

@media (max-width: 760px) {
    .config-list-head {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .config-list-head .button {
        width: 100%;
    }

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


/* KIRA CONFIG OPERATIONS V18 FINAL */

.config-row-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.config-danger-action {
    color: #cf8e8e;
    border-color: rgba(185, 86, 86, .30);
    background: rgba(130, 45, 45, .035);
}

.config-danger-action:hover,
.config-danger-action:focus-visible {
    color: #f0b3b3;
    border-color: rgba(205, 103, 103, .55);
    background: rgba(130, 45, 45, .10);
    outline: none;
}


/* KIRA PROFESSIONAL ARCHIVE V18.1 */

.config-archive {
    margin-top: 1.25rem;
    border-top: 1px solid #2b2925;
}

.config-archive > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    color: #8c857a;
    cursor: pointer;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    list-style: none;
}

.config-archive > summary::-webkit-details-marker {
    display: none;
}

.config-archive > summary span {
    min-width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border: 1px solid #302e29;
    color: #d1aa5b;
    font-size: .62rem;
}

.config-archive[open] > summary {
    color: #d3cbbc;
}


/* KIRA CONFIG LINKS HOURS V19 */

.config-link-groups,
.config-hours-groups {
    display: grid;
    gap: .9rem;
}

.config-link-group,
.config-hours-group {
    border: 1px solid #2b2925;
    background: #121210;
}

.config-link-group-head,
.config-hours-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #2b2925;
}

.config-link-group-head > div,
.config-hours-group-head > div {
    display: grid;
    gap: .2rem;
}

.config-link-group-head span,
.config-hours-group-head span {
    color: #80796f;
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .13em;
}

.config-link-group-head strong,
.config-hours-group-head strong {
    color: #eee7da;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1rem;
}

.config-service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: 1rem 1.1rem 1.1rem;
}

.config-service-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .38rem .65rem;
    border: 1px solid rgba(209,170,91,.24);
    color: #d7c9ae;
    background: rgba(209,170,91,.035);
    font-size: .68rem;
}

.config-service-tags small {
    color: #746e64;
}

.config-service-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: .65rem;
    margin-bottom: 1rem;
}

.config-service-option {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .75rem;
    align-items: start;
    padding: .85rem;
    border: 1px solid #2a2824;
    background: #11110f;
    cursor: pointer;
}

.config-service-option input {
    margin-top: .2rem;
}

.config-service-option span {
    display: grid;
    gap: .2rem;
}

.config-service-option strong {
    color: #ddd5c8;
    font-size: .78rem;
}

.config-service-option small {
    color: #746e64;
}

#professional-services-save[aria-busy="true"],
#professional-hours-save[aria-busy="true"] {
    cursor: wait;
    opacity: .62;
}

.config-week-strip {
    display: grid;
    grid-template-columns: repeat(7, minmax(0,1fr));
    gap: 1px;
    background: #2b2925;
}

.config-week-strip > div {
    min-width: 0;
    padding: .85rem .7rem;
    background: #11110f;
    display: grid;
    gap: .25rem;
}

.config-week-strip span {
    color: #7c756a;
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.config-week-strip strong {
    color: #d9d1c4;
    font-size: .68rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.config-week-strip .is-closed strong {
    color: #625d55;
}

.config-hours-editor {
    display: grid;
    gap: .7rem;
    margin-bottom: 1rem;
}

.config-hours-row {
    display: grid;
    grid-template-columns: minmax(170px, .8fr) minmax(0,1.2fr);
    gap: 1rem;
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid #2a2824;
    background: #11110f;
}

.config-hours-day {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}

.config-hours-day strong {
    color: #ded6c9;
    font-size: .78rem;
}

.config-hours-day label {
    color: #817a70;
    font-size: .68rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.config-hours-times {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
}

.config-hours-times .form-group {
    margin: 0;
}

@media (max-width: 900px) {
    .config-week-strip {
        grid-template-columns: repeat(4, minmax(0,1fr));
    }

    .config-service-checklist {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .config-link-group-head,
    .config-hours-group-head {
        align-items: stretch;
        flex-direction: column;
    }

    .config-link-group-head .button,
    .config-hours-group-head .button {
        width: 100%;
    }

    .config-week-strip {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .config-hours-row {
        grid-template-columns: 1fr;
    }

    .config-hours-times {
        grid-template-columns: 1fr 1fr;
    }
}


/* KIRA CONFIG COMMISSION BOOKING V20 */

.config-commission-groups {
    display: grid;
    gap: 1px;
    background: #2b2925;
}

.config-commission-row {
    display: grid;
    grid-template-columns: minmax(160px, 1.3fr) .7fr 1fr auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    background: #121210;
}

.config-commission-person,
.config-commission-value {
    display: grid;
    gap: .2rem;
}

.config-commission-person span,
.config-commission-value span {
    color: #777067;
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.config-commission-person strong {
    color: #eee6d8;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: .92rem;
}

.config-commission-value strong {
    color: #d6cec1;
    font-size: .76rem;
    font-variant-numeric: tabular-nums;
}

.config-info-note {
    display: grid;
    gap: .3rem;
    margin-top: 1rem;
    padding: .9rem 1rem;
    border-left: 2px solid rgba(209,170,91,.58);
    background: rgba(209,170,91,.035);
}

.config-info-note strong {
    color: #d5c19a;
    font-size: .72rem;
}

.config-info-note span {
    color: #817b71;
    font-size: .7rem;
    line-height: 1.55;
}

#commission-save-submit[aria-busy="true"],
#booking-policy-save[aria-busy="true"] {
    cursor: wait;
    opacity: .62;
}

.config-booking-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1rem;
}

.config-booking-head > div {
    display: grid;
    gap: .3rem;
}

.config-booking-head > div > span {
    color: #d1aa5b;
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.config-booking-head p {
    max-width: 52ch;
    margin: 0;
    color: #817b71;
    font-size: .76rem;
    line-height: 1.55;
}

.config-booking-state {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .35rem .6rem;
    border: 1px solid #302e29;
    font-size: .55rem;
    font-weight: 800;
    letter-spacing: .08em;
    white-space: nowrap;
}

.config-booking-state.is-live {
    color: #82b58d;
    border-color: rgba(94,150,108,.42);
    background: rgba(94,150,108,.055);
}

.config-booking-state.is-off {
    color: #918a80;
}

.config-readiness-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 1px;
    margin: 1rem 0;
    background: #2b2925;
}

.config-readiness-grid > div {
    display: grid;
    gap: .35rem;
    padding: .9rem;
    background: #11110f;
}

.config-readiness-grid span {
    color: #777067;
    font-size: .5rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.config-readiness-grid strong {
    color: #e5ddd0;
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.config-readiness-note {
    display: grid;
    gap: .25rem;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid #2d2b27;
}

.config-readiness-note strong {
    font-size: .72rem;
}

.config-readiness-note span {
    color: #817b71;
    font-size: .68rem;
    line-height: 1.5;
}

.config-readiness-note.is-ready {
    border-color: rgba(94,150,108,.30);
    background: rgba(94,150,108,.035);
}

.config-readiness-note.is-ready strong {
    color: #82b58d;
}

.config-readiness-note.is-blocked {
    border-color: rgba(209,170,91,.24);
    background: rgba(209,170,91,.025);
}

.config-readiness-note.is-blocked strong {
    color: #d1aa5b;
}

@media (max-width: 900px) {
    .config-commission-row {
        grid-template-columns: 1.2fr .7fr 1fr auto;
    }

    .config-commission-row > .config-row-actions {
        grid-column: 1 / -1;
    }

    .config-readiness-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }
}

@media (max-width: 640px) {
    .config-commission-row {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }

    .config-commission-person {
        grid-column: 1 / -1;
    }

    .config-booking-head {
        flex-direction: column;
        gap: .8rem;
    }

    .config-booking-state {
        white-space: normal;
    }

    .config-readiness-grid {
        grid-template-columns: 1fr 1fr;
    }
}


/* KIRA ACCESS HARDENING V21 */

.internal-login-card {
    max-width: 420px;
    margin: 2rem auto;
}

.internal-login-head {
    display: grid;
    gap: .35rem;
    margin-bottom: 1.6rem;
}

.internal-login-head > span {
    color: #d1aa5b;
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.internal-login-head .card-title {
    margin: 0;
}

.internal-login-head p {
    margin: 0;
    color: #817b71;
    font-size: .74rem;
    line-height: 1.55;
}

.internal-login-actions {
    margin-top: .55rem;
}

.internal-login-note {
    display: grid;
    gap: .25rem;
    margin-top: 1rem;
    padding: .85rem 1rem;
    border-left: 2px solid rgba(209,170,91,.50);
    background: rgba(209,170,91,.03);
}

.internal-login-note strong {
    color: #d4c29f;
    font-size: .68rem;
}

.internal-login-note span {
    color: #777168;
    font-size: .68rem;
    line-height: 1.5;
}


/* KIRA PUBLIC BOOKING SAFETY V22.1 */

.booking-unavailable-card {
    max-width: 760px;
    margin: 3rem auto;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid #2b2925;
    background: #11110f;
}

.booking-unavailable-card > span {
    color: #d1aa5b;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.booking-unavailable-card h2 {
    margin: .8rem 0 1rem;
    color: #ece4d7;
    font-family: "Roboto Slab", Georgia, serif;
    font-size: clamp(2.5rem, 8vw, 5.5rem);
    line-height: .86;
    letter-spacing: -.055em;
}

.booking-unavailable-card h2 em {
    color: #d1aa5b;
    font-style: italic;
}

.booking-unavailable-card p {
    max-width: 52ch;
    margin: 0 0 1.5rem;
    color: #8a8378;
    line-height: 1.65;
}

#confirm-booking[aria-busy="true"] {
    pointer-events: none;
    opacity: .62;
    cursor: wait;
}
