* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

:root {
    --vrc-font-display: "Electrolize", "Exo 2", sans-serif;
    --vrc-font-body: "Exo 2", ui-sans-serif, sans-serif;
    --vrc-font-mono: "Share Tech Mono", ui-monospace, Consolas, monospace;
}

body {
    margin: 0;
    background: #f6f8fb;
    color: #172033;
    font-family: var(--vrc-font-body);
    letter-spacing: 0.02em;
}

h1, h2, h3, h4, h5, h6,
.eyebrow,
button,
input[type="submit"],
input[type="button"],
.btn,
[class^="btn-"],
[class*=" btn-"],
th,
thead th,
dt,
.app-topbar-title,
.app-topbar-sub,
.sidebar a,
.sidebar-nav a,
.area-clienti-detail-panel h3,
.client-identity-card h3,
.membership-showcase-tier,
.crm-metric-value,
.hub-card-title {
    font-family: var(--vrc-font-display);
    letter-spacing: 0.05em;
}

.client-identity-code,
code,
pre,
kbd,
.vrc-code,
[class*="client-code"] {
    font-family: var(--vrc-font-mono);
    letter-spacing: 0.04em;
}

a {
    color: inherit;
    text-decoration: none;
}

table {
    border-collapse: collapse;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #d7deea;
    border-radius: .75rem;
    background: #fff;
    color: #172033;
    padding: .65rem .85rem;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #2563eb;
    outline: 3px solid rgb(37 99 235 / .12);
}

button,
a {
    transition: .15s ease;
}

button,
.button {
    border: 0;
    cursor: pointer;
}

.brand-logo,
.header-logo,
.login-brand img {
    object-fit: cover;
    border: 1px solid rgb(14 165 233 / .28);
    background: #020617;
    box-shadow: 0 14px 30px rgb(15 23 42 / .14);
}

.brand-logo {
    width: 4.2rem;
    height: 2.55rem;
    border-radius: .9rem;
}

.header-brand,
.login-brand {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.header-logo {
    width: 3.35rem;
    height: 3.35rem;
    border-radius: 0.85rem;
    flex-shrink: 0;
}

.login-brand img {
    width: 6rem;
    height: 3.6rem;
    border-radius: 1rem;
}

.theme-icon-toggle {
    width: 2.65rem;
    min-width: 2.65rem;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    line-height: 1;
}

.back-to-top {
    position: fixed;
    left: 50%;
    bottom: 1.1rem;
    z-index: 80;
    width: 2.35rem;
    height: 2.35rem;
    display: grid;
    place-items: center;
    border: 1px solid rgb(14 165 233 / .38);
    border-radius: 999px;
    background: rgb(14 165 233 / .18);
    color: #020617;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 14px 30px rgb(15 23 42 / .18);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, .75rem);
    backdrop-filter: blur(10px);
}

.back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.back-to-top:hover {
    background: rgb(14 165 233 / .28);
    border-color: rgb(14 165 233 / .58);
}

.min-h-screen { min-height: 100vh; }
.grid { display: grid; }
.flex { display: flex; }
.block { display: block; }
.hidden { display: none; }
.flex-1 { flex: 1 1 0%; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.place-items-center { place-items: center; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.space-y-2 > * + * { margin-top: .5rem; }
.space-y-3 > * + * { margin-top: .75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.gap-2 { gap: .5rem; }
.gap-3 { gap: .75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.h-2 { height: .5rem; }

.p-3 { padding: .75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-2 { padding-left: .5rem; padding-right: .5rem; }
.px-3 { padding-left: .75rem; padding-right: .75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-1 { padding-top: .25rem; padding-bottom: .25rem; }
.py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.py-3 { padding-top: .75rem; padding-bottom: .75rem; }

.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-8 { margin-bottom: 2rem; }
.mt-1 { margin-top: .25rem; }
.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: .75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }

.w-full { width: 100%; }
.max-w-md { max-width: 28rem; }
.max-w-3xl { max-width: 48rem; }
.text-xs { font-size: .75rem; }
.text-sm { font-size: .875rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.rounded { border-radius: .25rem; }
.rounded-lg { border-radius: .5rem; }
.rounded-xl { border-radius: .75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.overflow-x-auto { overflow-x: auto; }

.border,
.border-slate-700,
.border-slate-800,
.border-cyan-500\/40,
.border-emerald-500\/40,
.border-red-500\/40,
.border-amber-500\/40 {
    border: 1px solid #e2e8f0;
}

.border-t {
    border-top: 1px solid #edf1f7;
}

.border-r {
    border-right: 1px solid #e2e8f0;
}

.border-b {
    border-bottom: 1px solid #e2e8f0;
}

.bg-slate-950,
.bg-slate-950\/80 {
    background: #f6f8fb;
}

.bg-slate-900,
.bg-slate-900\/95 {
    background: #fff;
}

.bg-slate-800 {
    background: #eef3fb;
}

.bg-slate-900,
.bg-slate-950,
.bg-slate-800,
.bg-cyan-500\/10,
.bg-emerald-500\/10,
.bg-red-500\/10,
.bg-amber-500\/10 {
    box-shadow: 0 10px 30px rgb(15 23 42 / .05);
}

.bg-cyan-400,
.bg-cyan-500 {
    background: rgb(37 99 235 / .16);
    border: 1px solid rgb(37 99 235 / .35);
    color: #0f172a;
}

.bg-emerald-400 {
    background: #16a34a;
}

.bg-red-500 {
    background: #dc2626;
}

.bg-cyan-500\/10 {
    background: #eff6ff;
}

.bg-emerald-500\/10 {
    background: #f0fdf4;
}

.bg-red-500\/10 {
    background: #fef2f2;
}

.bg-amber-500\/10 {
    background: #fffbeb;
}

.text-slate-950,
.text-slate-100,
.text-slate-200,
.text-slate-300 {
    color: #172033;
}

.text-slate-400,
.text-slate-500 {
    color: #667085;
}

.text-cyan-200,
.text-cyan-300 {
    color: #2563eb;
}

.text-emerald-200,
.text-emerald-300 {
    color: #15803d;
}

.text-amber-200 {
    color: #b45309;
}

.text-red-200 {
    color: #b91c1c;
}

.text-white {
    color: #fff;
}

.shadow-2xl {
    box-shadow: 0 24px 48px rgb(15 23 42 / .08);
}

.hover\:bg-slate-700:hover,
.hover\:bg-slate-800:hover {
    background: #eef3fb;
}

.hover\:bg-cyan-400:hover {
    background: rgb(37 99 235 / .24);
}

.hover\:border-cyan-500\/60:hover {
    border-color: #93c5fd;
}

aside {
    background: #fff !important;
    color: #172033;
}

aside nav a {
    color: #344054;
}

aside nav a:hover {
    color: #1d4ed8;
}

html.theme-light .sidebar-link:hover,
html.theme-light .notification-bell:hover {
    background: #f1f5f9 !important;
    color: #0f172a !important;
}

html.theme-light .sidebar-link.is-active {
    color: #0369a1 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .18), rgb(224 242 254 / .85)) !important;
    box-shadow: inset 3px 0 0 #0284c7;
}

html.theme-light body.notifications-open .notification-bell {
    color: #0369a1 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .18), rgb(224 242 254 / .85)) !important;
    box-shadow: inset 3px 0 0 #0284c7;
}

header {
    background: #fff !important;
}

main {
    background: #f6f8fb;
}

table th {
    color: #667085;
    font-weight: 600;
}

table td {
    color: #344054;
}

.h-2.rounded.bg-slate-800 {
    background: #e5eaf3;
    box-shadow: none;
}

.h-2.rounded.bg-cyan-400 {
    background: #2563eb;
    box-shadow: none;
}

@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .md\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .lg\:flex { display: flex; }
    .lg\:w-72 { width: 18rem; }
}

@media (min-width: 1280px) {
    .xl\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .xl\:col-span-2 { grid-column: span 2 / span 2; }
}

html.theme-light,
body.theme-light { background:#f3f4f6 !important; color:#172033 !important; }
.theme-light .bg-slate-950,
.theme-light .bg-slate-950\/80 { background:#f3f4f6 !important; }
.theme-light .bg-slate-900,
.theme-light .bg-slate-900\/95 { background:#ffffff !important; }
.theme-light .bg-slate-800 { background:#e2e8f0 !important; }
.theme-light .border,
.theme-light .border-t,
.theme-light .border-b,
.theme-light .border-r,
.theme-light .border-slate-700,
.theme-light .border-slate-800 { border-color:#d7dde8 !important; }
.theme-light .text-slate-100,
.theme-light .text-slate-200,
.theme-light .text-slate-300 { color:#172033 !important; }
.theme-light .text-slate-400,
.theme-light .text-slate-500 { color:#64748b !important; }
.theme-light .text-cyan-200,
.theme-light .text-cyan-300 { color:#0369a1 !important; }
.theme-light .text-amber-100,
.theme-light .text-amber-200 { color:#92400e !important; }
.theme-light .text-emerald-200,
.theme-light .text-emerald-300 { color:#047857 !important; }
.theme-light input,
.theme-light select,
.theme-light textarea { background:#f8fafc !important; color:#172033 !important; border-color:#cbd5e1 !important; }
.theme-light .bg-cyan-500\/10 { background:#e0f2fe !important; }
.theme-light .bg-amber-500\/10 { background:#fef3c7 !important; }
.theme-light .bg-emerald-500\/10 { background:#dcfce7 !important; }
.theme-light .bg-red-500\/10 { background:#fee2e2 !important; }
.theme-light .hover\:bg-slate-800:hover,
.theme-light .hover\:bg-slate-700:hover { background:#e2e8f0 !important; }

html.theme-dark,
body.theme-dark { background:#020617 !important; color:#f1f5f9 !important; }
.theme-dark .bg-slate-950,
.theme-dark .bg-slate-950\/80 { background:#020617 !important; }
.theme-dark .bg-slate-900,
.theme-dark .bg-slate-900\/95 { background:#0f172a !important; }
.theme-dark .bg-slate-800 { background:#1e293b !important; color:#f8fafc !important; }
.theme-dark .border,
.theme-dark .border-t,
.theme-dark .border-b,
.theme-dark .border-r,
.theme-dark .border-slate-700,
.theme-dark .border-slate-800 { border-color:#1e293b !important; }
.theme-dark .text-slate-100,
.theme-dark .text-slate-200,
.theme-dark .text-slate-300 { color:#e2e8f0 !important; }
.theme-dark .text-slate-400 { color:#94a3b8 !important; }
.theme-dark .text-slate-500 { color:#64748b !important; }
.theme-dark .text-cyan-200 { color:#a5f3fc !important; }
.theme-dark .text-cyan-300 { color:#67e8f9 !important; }
.theme-dark .text-amber-200 { color:#fde68a !important; }
.theme-dark .text-emerald-200,
.theme-dark .text-emerald-300 { color:#6ee7b7 !important; }
.theme-dark input,
.theme-dark select,
.theme-dark textarea { background:#020617 !important; color:#e2e8f0 !important; border-color:#334155 !important; }
.theme-dark .bg-cyan-500\/10 { background:rgb(6 182 212 / .10) !important; }
.theme-dark .bg-amber-500\/10 { background:rgb(245 158 11 / .10) !important; }
.theme-dark .bg-emerald-500\/10 { background:rgb(16 185 129 / .10) !important; }
.theme-dark .bg-red-500\/10 { background:rgb(239 68 68 / .10) !important; }
.theme-dark .hover\:bg-slate-800:hover { background:#1e293b !important; }
.theme-dark .hover\:bg-slate-700:hover { background:#334155 !important; }
.theme-dark main,
.theme-dark aside,
.theme-dark header,
.theme-dark section { color:#f1f5f9 !important; }

/* Final theme overrides: keep dark and light fully separated. */
html.theme-dark,
html.theme-dark body,
html.theme-dark .min-h-screen,
html.theme-dark main,
html.theme-dark section {
    background:#020617 !important;
    color:#f8fafc !important;
}

html.theme-dark aside {
    background:#07111f !important;
    color:#f8fafc !important;
}

html.theme-dark header {
    background:#020617 !important;
    color:#f8fafc !important;
}

html.theme-dark .bg-slate-900,
html.theme-dark .bg-slate-900\/95,
html.theme-dark .rounded-2xl.bg-slate-900,
html.theme-dark .rounded-xl.bg-slate-950 {
    background:#0f172a !important;
    color:#f8fafc !important;
    border-color:#243044 !important;
    box-shadow:0 14px 34px rgb(0 0 0 / .28) !important;
}

html.theme-dark .bg-slate-950,
html.theme-dark .bg-slate-950\/80 {
    background:#020617 !important;
    color:#f8fafc !important;
}

html.theme-dark .bg-slate-800 {
    background:#1e293b !important;
    color:#f8fafc !important;
}

html.theme-dark .bg-cyan-400,
html.theme-dark .bg-cyan-500,
html.theme-dark .download-xls {
    background:rgb(103 232 249 / .18) !important;
    border-color:rgb(103 232 249 / .38) !important;
    color:#f8fafc !important;
}

html.theme-dark .back-to-top {
    background:rgb(103 232 249 / .22);
    border-color:rgb(103 232 249 / .42);
    color:#020617;
}

html.theme-dark .hover\:bg-cyan-400:hover,
html.theme-dark .download-xls:hover {
    background:rgb(103 232 249 / .28) !important;
}

html.theme-dark .bg-cyan-500\/10 {
    background:#082f49 !important;
    color:#e0f2fe !important;
}

html.theme-dark .bg-amber-500\/10 { background:#2a1f08 !important; color:#fde68a !important; }
html.theme-dark .bg-emerald-500\/10 { background:#06281b !important; color:#bbf7d0 !important; }
html.theme-dark .bg-red-500\/10 { background:#2d0b0b !important; color:#fecaca !important; }

html.theme-dark .border,
html.theme-dark .border-t,
html.theme-dark .border-b,
html.theme-dark .border-r,
html.theme-dark .border-slate-700,
html.theme-dark .border-slate-800 {
    border-color:#243044 !important;
}

html.theme-dark aside nav a,
html.theme-dark table td,
html.theme-dark table th,
html.theme-dark label,
html.theme-dark p,
html.theme-dark span,
html.theme-dark div {
    color:inherit;
}

html.theme-dark .text-slate-100,
html.theme-dark .text-slate-200,
html.theme-dark .text-slate-300 { color:#e5edf8 !important; }
html.theme-dark .text-slate-400 { color:#9aa8bc !important; }
html.theme-dark .text-slate-500 { color:#7c8ba1 !important; }
html.theme-dark .text-cyan-200,
html.theme-dark .text-cyan-300 { color:#67e8f9 !important; }

html.theme-dark input,
html.theme-dark select,
html.theme-dark textarea {
    background:#020617 !important;
    color:#f8fafc !important;
    border-color:#334155 !important;
}

html.theme-dark .h-2.rounded.bg-slate-800 {
    background:#1e293b !important;
}

html.theme-dark .h-2.rounded.bg-cyan-400 {
    background:#22d3ee !important;
}

html.theme-light,
html.theme-light body,
html.theme-light .min-h-screen,
html.theme-light main,
html.theme-light section {
    background:#f3f4f6 !important;
    color:#172033 !important;
}

html.theme-light aside,
html.theme-light header,
html.theme-light .bg-slate-900,
html.theme-light .bg-slate-900\/95 {
    background:#ffffff !important;
    color:#172033 !important;
}

/* Polished management dashboard */
.dashboard-hero {
    margin-bottom: 1.25rem;
    padding: 1.5rem;
    border: 1px solid rgb(34 211 238 / .28);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at top left, rgb(34 211 238 / .18), transparent 34%),
        linear-gradient(135deg, #0f172a, #111827 58%, #020617);
    color: #f8fafc;
    box-shadow: 0 22px 55px rgb(15 23 42 / .22);
}

.dashboard-hero .eyebrow {
    color: #67e8f9;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dashboard-hero h2 {
    margin: .25rem 0;
    font-size: clamp(1.6rem, 2.4vw, 2.35rem);
    line-height: 1.1;
}

.dashboard-hero p {
    margin: .5rem 0 0;
    max-width: 42rem;
    color: #cbd5e1;
    line-height: 1.5;
    font-size: 0.95rem;
}

.dashboard-hero.page-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}

.page-hero-main {
    flex: 1 1 18rem;
    min-width: 0;
}

.page-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.btn-hero-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1rem;
    border: none;
    border-radius: 0.65rem;
    background: #22d3ee;
    color: #0f172a;
    font-size: 0.8125rem;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.btn-hero-primary:hover {
    filter: brightness(1.05);
}

.btn-hero-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    border-radius: 0.65rem;
    background: rgb(15 23 42 / 0.55);
    color: #e2e8f0;
    font-size: 0.8125rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.btn-hero-secondary:hover {
    border-color: rgb(34 211 238 / 0.45);
    color: #fff;
}

.home-customize-note {
    margin-bottom: 1rem;
    padding: .85rem 1rem;
    border: 1px solid rgb(14 165 233 / .24);
    border-radius: 1rem;
    background: rgb(14 165 233 / .10);
    color: #0f172a;
    font-size: .9rem;
    font-weight: 800;
}

.dashboard-customizer {
    display: grid;
    gap: 1.25rem;
}

.home-widget {
    position: relative;
}

.home-widget.is-dragging {
    opacity: .55;
}

.home-widget-handle {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .55rem;
    padding: .35rem .65rem;
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    background: rgb(255 255 255 / .9);
    color: #475569;
    font-size: .78rem;
    font-weight: 900;
    user-select: none;
}

.home-widget-handle span {
    color: #475569;
}

.home-widget-actions {
    display: inline-flex;
    gap: .35rem;
}

.home-widget-actions button {
    width: 1.85rem;
    height: 1.85rem;
    border: 1px solid rgb(14 165 233 / .28);
    border-radius: 999px;
    background: rgb(14 165 233 / .12);
    color: #0f172a;
    font-weight: 900;
    line-height: 1;
}

.home-widget-actions button:hover {
    background: rgb(14 165 233 / .22);
}

body.home-editing .home-widget-handle {
    display: inline-flex;
}

body.home-editing .home-widget {
    outline: 1px dashed rgb(14 165 233 / .35);
    outline-offset: .35rem;
    border-radius: 1rem;
}

body.home-editing .home-widget:hover {
    outline-color: rgb(14 165 233 / .7);
}

.app-topbar-actions .home-edit-cancel,
.app-topbar-actions .home-edit-confirm,
.home-edit-confirm,
.home-edit-cancel {
    display: none !important;
}

body.home-editing .app-topbar-actions .home-edit-confirm,
body.home-editing .app-topbar-actions .home-edit-cancel,
body.home-editing .home-edit-confirm,
body.home-editing .home-edit-cancel {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 2.45rem;
    padding-left: 0 !important;
    padding-right: 0 !important;
    font-size: 1rem;
    font-weight: 900;
}

body.home-editing .app-topbar-actions .home-edit-toggle,
body.home-editing .home-edit-toggle {
    display: none !important;
}

.home-edit-cancel {
    color: #991b1b !important;
    background: rgb(239 68 68 / .12) !important;
    border: 1px solid rgb(239 68 68 / .28);
}

.metric-card {
    min-height: 7.25rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: linear-gradient(180deg, rgb(255 255 255 / .95), rgb(248 250 252 / .95)) !important;
    border-color: #dbe4f0 !important;
}

.metric-card > div {
    color: #64748b;
    font-size: .86rem;
    font-weight: 700;
}

.metric-card strong {
    display: block;
    margin-top: .75rem;
    color: #0f172a;
    font-size: clamp(1.65rem, 2.4vw, 2.35rem);
    line-height: 1;
}

.metric-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.metric-link:hover {
    transform: translateY(-2px);
    border-color: rgb(14 165 233 / .45) !important;
    box-shadow: 0 18px 36px rgb(15 23 42 / .14);
}

.metric-link span {
    color: #0ea5e9;
    font-size: .78rem;
    font-weight: 800;
}

.metric-card-accent {
    background: linear-gradient(135deg, #dffafe, #eff6ff) !important;
    border-color: rgb(34 211 238 / .4) !important;
}

.sale-summary-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 48rem;
}

.sale-summary-card {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(180deg, rgb(255 255 255 / .96), rgb(248 250 252 / .96)) !important;
    border-color: #dbe4f0 !important;
}

.sale-summary-card > div {
    width: 100%;
}

.performance-actions {
    display: flex;
    align-items: end;
    gap: .75rem;
    flex-wrap: wrap;
}

.performance-month-form {
    display: grid;
    gap: .35rem;
}

.performance-month-form label {
    color: #64748b;
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.performance-month-form select,
.download-xls {
    min-height: 2.55rem;
    border: 1px solid #dbe4f0;
    border-radius: .8rem;
    background: #fff;
    color: #0f172a;
    font-size: .88rem;
    font-weight: 800;
}

.performance-month-form select {
    min-width: 10rem;
    padding: 0 2.2rem 0 .9rem;
}

.download-xls {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 1rem;
    background: rgb(37 99 235 / .16);
    border-color: rgb(37 99 235 / .35);
    color: #0f172a;
    text-decoration: none;
}

.download-xls:hover {
    background: rgb(37 99 235 / .24);
    border-color: rgb(37 99 235 / .5);
}

.alert-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.alert-card-link:hover {
    transform: translateY(-2px);
    border-color: rgb(245 158 11 / .65) !important;
    box-shadow: 0 18px 36px rgb(146 64 14 / .16);
}

.inventory-room-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.inventory-room-chip {
    display: inline-flex;
    align-items: center;
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    padding: .45rem .9rem;
    font-size: .82rem;
    font-weight: 600;
    color: #334155;
    background: #fff;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.inventory-room-chip:hover {
    border-color: #22d3ee;
    color: #0e7490;
}

.inventory-room-chip.is-active {
    border-color: #22d3ee;
    background: rgb(34 211 238 / .12);
    color: #0e7490;
}

.inventory-dropdown-list {
    display: grid;
    gap: .75rem;
}

.inventory-subsection-title {
    font-size: .95rem;
    font-weight: 900;
    color: #0f172a;
    margin: 1.35rem 0 .35rem;
    letter-spacing: .02em;
}

.inventory-subsection-title:first-of-type {
    margin-top: 0;
}

.inventory-subsection-hint {
    margin-bottom: .5rem;
}

.inventory-dropdown {
    border: 1px solid #dbe4f0;
    border-radius: .95rem;
    background: #fff;
    overflow: hidden;
}

.inventory-dropdown-alert {
    border-color: rgb(245 158 11 / .45);
    background: rgb(245 158 11 / .10);
}

.inventory-dropdown-asset {
    border-color: rgb(59 130 246 / .38);
    background: rgb(239 246 255 / .72);
}

.inventory-dropdown summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
}

.inventory-dropdown summary::-webkit-details-marker {
    display: none;
}

.inventory-dropdown summary::after {
    content: "Apri";
    justify-self: end;
    color: #2563eb;
    font-size: .78rem;
    font-weight: 900;
}

.inventory-dropdown[open] summary::after {
    content: "Chiudi";
}

.inventory-summary-name {
    color: #0f172a;
    font-weight: 900;
    min-width: 0;
}

.inventory-summary-meta {
    color: #64748b;
    font-size: .82rem;
    font-weight: 800;
    white-space: nowrap;
}

.inventory-summary-alert {
    border-radius: 999px;
    background: rgb(245 158 11 / .18);
    color: #92400e;
    padding: .25rem .55rem;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.inventory-dropdown-form {
    display: grid;
    gap: .75rem;
    padding: 0 1rem 1rem;
}

.inventory-dropdown-note {
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}

.crm-metrics-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.25rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    align-items: stretch;
}

@media (min-width: 1100px) {
    .crm-metrics-bar {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .crm-metrics-bar:has(.crm-metric-card:nth-child(4):last-child) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.crm-metrics-bar .crm-metric-card {
    min-height: 6.5rem;
    margin: 0;
    padding: 0.9rem 1rem !important;
}

.crm-metric-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
}

.crm-metric-value {
    display: block;
    margin: 0.4rem 0 0;
    font-size: clamp(1.55rem, 2.1vw, 2.15rem);
    font-weight: 800;
    line-height: 1;
    color: #0f172a;
}

.crm-metric-value--arrow {
    color: #0284c7;
    font-size: clamp(1.75rem, 2.4vw, 2.35rem);
}

.crm-metric-hint {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.68rem;
    line-height: 1.35;
    color: #64748b;
}

.crm-metric-card--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.crm-metric-card--link:hover {
    transform: translateY(-2px);
    border-color: rgb(14 165 233 / 0.45) !important;
    box-shadow: 0 14px 32px rgb(15 23 42 / 0.12);
}

.crm-metric-card--onsite {
    border-color: rgb(251 191 36 / 0.38) !important;
}

.crm-metric-card--remote {
    border-color: rgb(59 130 246 / 0.38) !important;
}

.crm-metric-card--unset {
    border-color: rgb(148 163 184 / 0.45) !important;
}

.theme-dark .crm-metric-label {
    color: #94a3b8;
}

.theme-dark .crm-metric-value {
    color: #f8fafc !important;
}

.theme-dark .crm-metric-value--arrow {
    color: #67e8f9 !important;
}

.theme-dark .crm-metric-hint {
    color: #64748b;
}

.theme-dark .crm-metric-card--link:hover {
    border-color: rgb(34 211 238 / 0.5) !important;
    box-shadow: 0 16px 36px rgb(0 0 0 / 0.35);
}

.theme-dark .crm-archive-toggle-link {
    color: #67e8f9;
}

.theme-dark .crm-archive-toggle-link:hover {
    color: #a5f3fc;
}

.crm-shift-feedback-panel {
    margin-top: 1.25rem;
    border-radius: 1rem;
    border: 1px solid rgb(167 139 250 / 0.38);
    background: linear-gradient(180deg, rgb(167 139 250 / 0.1) 0%, rgb(15 23 42 / 0.55) 100%);
    overflow: hidden;
}

.crm-shift-feedback-panel-summary {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1.1rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.crm-shift-feedback-panel-summary::-webkit-details-marker {
    display: none;
}

.crm-shift-feedback-panel-icon {
    font-size: 1.2rem;
}

.crm-shift-feedback-panel-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.crm-shift-feedback-panel-copy strong {
    font-size: 0.95rem;
    color: #e9d5ff;
}

.crm-shift-feedback-panel-copy span:last-child {
    font-size: 0.78rem;
    color: #94a3b8;
}

.crm-shift-feedback-panel-badges {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.crm-shift-feedback-panel-count {
    display: inline-flex;
    min-width: 1.65rem;
    justify-content: center;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    background: rgb(167 139 250 / 0.24);
    color: #e9d5ff;
    font-size: 0.78rem;
    font-weight: 800;
}

.crm-shift-feedback-panel-open {
    font-size: 0.72rem;
    font-weight: 700;
    color: #c4b5fd;
}

.crm-shift-feedback-panel-body {
    padding: 0 1.1rem 1.1rem;
    border-top: 1px solid rgb(167 139 250 / 0.22);
}

.crm-shift-feedback-panel-hint {
    margin: 0.85rem 0 0.95rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #94a3b8;
}

.crm-shift-feedback-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 0.85rem;
}

.crm-shift-feedback-card {
    border-radius: 1rem;
    border: 1px solid rgb(167 139 250 / 0.28);
    background: rgb(15 23 42 / 0.72);
    padding: 0.85rem 0.9rem;
}

.crm-shift-feedback-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.crm-shift-feedback-card-badge {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #c4b5fd;
}

.crm-shift-feedback-card-when {
    font-size: 0.72rem;
    color: #64748b;
}

.crm-shift-feedback-card h3 {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    line-height: 1.35;
    color: #f1f5f9;
}

.crm-shift-feedback-card-preview {
    margin: 0.55rem 0 0.75rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #94a3b8;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.crm-metric-card--feedback {
    border-color: rgb(167 139 250 / 0.35) !important;
}

.crm-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(17rem, 1fr));
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: .5rem;
}

@media (max-width: 1100px) {
    .crm-board {
        grid-template-columns: repeat(2, minmax(16rem, 1fr));
    }
}

.crm-column {
    min-width: 17rem;
    border: 1px solid #dbe4f0;
    border-radius: 1.25rem;
    background: rgb(255 255 255 / .78);
    padding: .9rem;
}

.crm-column-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
}

.crm-column-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1rem;
}

.crm-column-head p {
    margin: .2rem 0 0;
    color: #64748b;
    font-size: .78rem;
}

.crm-column-head span {
    min-width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgb(14 165 233 / .14);
    color: #0f172a;
    font-weight: 900;
}

.crm-column-list {
    display: grid;
    gap: .8rem;
}

.crm-card {
    border: 1px solid #dbe4f0;
    border-radius: 1rem;
    background: #fff;
    padding: .9rem;
    box-shadow: 0 12px 28px rgb(15 23 42 / .06);
}

.crm-card-top,
.crm-meta {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 800;
}

.crm-card h3 {
    margin: .6rem 0 .35rem;
    color: #0f172a;
    font-size: .98rem;
}

.crm-card p {
    margin: 0 0 .7rem;
    color: #475569;
    font-size: .84rem;
    line-height: 1.35;
}

.crm-priority {
    border-radius: 999px;
    padding: .18rem .48rem;
    background: rgb(14 165 233 / .16);
    color: #075985;
    text-transform: uppercase;
}

.crm-priority-high,
.crm-priority-urgent {
    background: #dc2626;
    color: #fff;
}

.crm-priority-normal {
    background: #bae6fd;
    color: #075985;
}

.crm-priority-low {
    background: #bbf7d0;
    color: #166534;
}

.crm-card-preview {
    margin: .55rem 0 0;
    color: #64748b;
    font-size: .8rem;
    line-height: 1.45;
}

.crm-card-footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .55rem;
    margin-top: .85rem;
    padding-top: .75rem;
    border-top: 1px solid #e2e8f0;
}

.crm-card-manage-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.5rem;
    padding: .55rem 1rem;
    border: none;
    border-radius: .75rem;
    background: linear-gradient(180deg, #22d3ee 0%, #06b6d4 100%);
    color: #0f172a;
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .01em;
    cursor: pointer;
    box-shadow: 0 6px 18px rgb(6 182 212 / .32);
    appearance: none;
    -webkit-appearance: none;
}

.crm-card-manage-btn:hover {
    background: linear-gradient(180deg, #67e8f9 0%, #22d3ee 100%);
    box-shadow: 0 8px 22px rgb(6 182 212 / .4);
    transform: translateY(-1px);
}

.crm-card-manage-btn:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgb(6 182 212 / .28);
}

.crm-card-owner {
    color: #94a3b8;
    font-size: .72rem;
    text-align: center;
}

.crm-card-form {
    display: grid;
    gap: .55rem;
    margin: .75rem 0;
}

.crm-card-form label {
    display: grid;
    gap: .28rem;
    color: #64748b;
    font-size: .72rem;
    font-weight: 900;
}

.crm-card-form textarea {
    min-height: 4.5rem;
}

.crm-attachment {
    margin-top: .45rem;
    color: #b45309;
    font-size: .78rem;
    font-weight: 800;
}

.crm-attachment-link {
    color: #b45309;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.crm-attachment-link:hover {
    color: #92400e;
}

.crm-attachment-link.is-missing {
    opacity: .65;
    text-decoration-style: dashed;
}

.crm-attachment-list .crm-attachment-link + .crm-attachment-link::before {
    content: ', ';
    font-weight: 400;
    text-decoration: none;
}

.request-attachment-row .crm-attachment {
    margin-top: 0;
}

.crm-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 1rem;
    padding: 1rem;
    color: #64748b;
    text-align: center;
}

.crm-archive-metric-link {
    margin-top: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
}

.crm-archive-toggle-link {
    color: #0369a1;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.crm-archive-toggle-link:hover {
    color: #0c4a6e;
}

.crm-resolved-fold {
    margin-top: 1rem;
    border: 1px solid #dbe4f0;
    border-radius: 1rem;
    background: rgb(255 255 255 / .55);
    overflow: hidden;
}

.crm-resolved-fold-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.75rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.crm-resolved-fold-summary::-webkit-details-marker {
    display: none;
}

.crm-resolved-fold-summary::after {
    content: '▾';
    margin-left: auto;
    color: #64748b;
    font-size: 0.9rem;
    transition: transform 0.15s ease;
}

.crm-resolved-fold[open] .crm-resolved-fold-summary::after {
    transform: rotate(180deg);
}

.crm-resolved-fold-title {
    font-size: 0.95rem;
    font-weight: 900;
    color: #0f172a;
}

.crm-resolved-fold-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: rgb(34 197 94 / .16);
    color: #166534;
    font-size: 0.78rem;
    font-weight: 900;
}

.crm-resolved-fold-hint {
    flex: 1 1 100%;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 600;
}

.crm-resolved-fold-body {
    border-top: 1px dashed #dbe4f0;
    padding: 0.65rem 1rem 0.85rem;
}

.crm-resolved-fold-recent {
    display: grid;
    gap: 0.45rem;
}

.crm-resolved-fold-empty {
    margin: 0;
    color: #64748b;
    font-size: 0.82rem;
}

.crm-resolved-archive {
    margin-top: 0.55rem;
    border-top: 1px dashed #dbe4f0;
    padding-top: 0.5rem;
}

.crm-resolved-archive summary {
    cursor: pointer;
    list-style: none;
    font-size: 0.72rem;
    font-weight: 800;
    color: #64748b;
    user-select: none;
}

.crm-resolved-archive summary::-webkit-details-marker {
    display: none;
}

.crm-archive-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    margin-left: 0.25rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 0.68rem;
}

.crm-archive-list {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.5rem;
    max-height: 14rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.crm-archive-item {
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    background: #f8fafc;
    padding: 0.5rem 0.6rem;
}

.crm-archive-item-top {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: flex-start;
}

.crm-archive-item-top strong {
    color: #0f172a;
    font-size: 0.78rem;
    line-height: 1.25;
}

.crm-archive-item-top span {
    color: #64748b;
    font-size: 0.68rem;
    white-space: nowrap;
}

.crm-archive-item-meta {
    margin-top: 0.2rem;
    color: #64748b;
    font-size: 0.68rem;
}

.crm-archive-item-note {
    margin: 0.35rem 0 0;
    color: #475569;
    font-size: 0.68rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.requests-page-layout {
    display: grid;
    gap: 1.25rem;
    min-height: calc(100vh - 9rem);
    align-items: stretch;
}

@media (min-width: 1200px) {
    .requests-page-layout {
        grid-template-columns: minmax(300px, 400px) minmax(0, 1fr);
        align-items: stretch;
    }
}

.requests-form-panel {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 9rem);
}

.requests-form-panel select,
.requests-form-panel input:not([type="file"]):not([type="hidden"]),
.requests-form-panel textarea {
    width: 100%;
    border-radius: 0.55rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.55rem 0.7rem;
    font-size: 0.9rem;
}

.requests-form-panel textarea[name="message"] {
    flex: 1 1 auto;
    min-height: 10rem;
    resize: vertical;
}

.requests-form-panel [data-vacation-fields],
.requests-form-panel .rounded-xl.border {
    flex-shrink: 0;
}

.requests-form-panel > button[type="submit"] {
    margin-top: auto;
    flex-shrink: 0;
}

.requests-table-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: calc(100vh - 9rem);
    overflow-x: visible;
}

.requests-table-panel .request-table-hint {
    flex-shrink: 0;
}

.requests-shift-feedback-fold {
    flex-shrink: 0;
    margin-top: 1rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(167 139 250 / 0.35);
    background: linear-gradient(180deg, rgb(167 139 250 / 0.08) 0%, rgb(15 23 42 / 0.55) 100%);
    overflow: hidden;
}

.requests-shift-feedback-fold-summary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.requests-shift-feedback-fold-summary::-webkit-details-marker {
    display: none;
}

.requests-shift-feedback-fold-icon {
    font-size: 1.15rem;
    line-height: 1;
}

.requests-shift-feedback-fold-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.requests-shift-feedback-fold-copy strong {
    font-size: 0.92rem;
    color: #e9d5ff;
}

.requests-shift-feedback-fold-hint {
    font-size: 0.78rem;
    color: #94a3b8;
}

.requests-shift-feedback-fold-badges {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.requests-shift-feedback-fold-count {
    display: inline-flex;
    min-width: 1.65rem;
    justify-content: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgb(167 139 250 / 0.22);
    color: #e9d5ff;
    font-size: 0.78rem;
    font-weight: 800;
}

.requests-shift-feedback-fold-open {
    font-size: 0.72rem;
    font-weight: 700;
    color: #c4b5fd;
}

.requests-shift-feedback-fold-body {
    padding: 0 1rem 1rem;
    border-top: 1px solid rgb(167 139 250 / 0.2);
}

.requests-table-scroll--feedback {
    max-height: 16rem;
    min-height: 0;
}

.requests-table--shift-feedback .requests-th-when {
    width: 12%;
    min-width: 6.5rem;
}

.request-table-row--shift-feedback:hover,
.request-table-row--shift-feedback:focus {
    background: rgb(167 139 250 / 0.08);
}

.requests-table-scroll {
    flex: 1 1 auto;
    min-height: 12rem;
    overflow: auto;
    margin: 0 -0.15rem;
    padding: 0 0.15rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.45);
    background: rgb(2 6 23 / 0.35);
}

.requests-table-scroll .requests-table-head th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: rgb(15 23 42 / 0.98);
}

.requests-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}

.requests-table-head th {
    padding: 0.65rem 1rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    text-align: left;
    white-space: nowrap;
}

.requests-th-room { width: 11%; min-width: 6.5rem; }
.requests-th-operator { width: 16%; min-width: 9rem; }
.requests-th-type { width: 18%; min-width: 10rem; }
.requests-th-priority { width: 9%; min-width: 5.5rem; text-align: center; }
.requests-th-status { width: 8%; min-width: 5rem; text-align: center; }
.requests-th-subject { width: auto; min-width: 12rem; }

.requests-table tbody td {
    padding: 0.85rem 1rem;
    vertical-align: top;
    line-height: 1.4;
}

.requests-td-room,
.requests-td-operator {
    font-weight: 600;
    color: #e2e8f0;
}

.requests-td-type {
    color: #cbd5e1;
    font-size: 0.84rem;
}

.requests-td-priority,
.requests-td-status {
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #cbd5e1;
}

.requests-td-subject {
    min-width: 0;
}

.request-table-row {
    cursor: pointer;
    transition: background 0.15s ease;
}

.request-table-row:hover,
.request-table-row:focus {
    background: rgb(14 165 233 / 0.08);
    outline: none;
}

.request-table-row.is-closed {
    opacity: 0.72;
}

.request-table-row.is-closed .request-table-subject {
    font-weight: 600;
    color: #64748b;
}

.theme-dark .request-table-row.is-closed .request-table-subject {
    color: #94a3b8;
}

.request-table-subject {
    font-weight: 700;
    color: #0f172a;
}

.request-table-preview {
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #64748b;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.request-table-open-hint {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    color: #0369a1;
}

.request-detail-dialog,
.booking-detail-dialog,
.walkin-booking-dialog {
    width: min(920px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    margin: auto;
    padding: 0;
    border: none;
    border-radius: 1.35rem;
    background: transparent;
}

.walkin-booking-dialog {
    width: min(980px, calc(100vw - 1.25rem));
}

.request-detail-dialog::backdrop,
.booking-detail-dialog::backdrop,
.walkin-booking-dialog::backdrop {
    background: rgb(15 23 42 / 0.55);
    backdrop-filter: blur(4px);
}

.request-detail-panel {
    position: relative;
    max-height: calc(100vh - 2rem);
    overflow: auto;
    border: 1px solid #dbe4f0;
    border-radius: 1.35rem;
    background: #ffffff;
    box-shadow: 0 28px 70px rgb(15 23 42 / 0.28);
    padding: 1.5rem 1.65rem 1.65rem;
}

.request-detail-close {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    z-index: 2;
    width: 1.75rem;
    height: 1.75rem;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    color: rgb(100 116 139 / 0.55);
    font-size: 1.35rem;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
}

.request-detail-close:hover {
    color: #334155;
    background: rgb(248 250 252 / 0.85);
}

.request-detail-header {
    padding-right: 2.5rem;
}

.request-detail-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.55rem;
}

.request-detail-badge,
.request-detail-badges .request-detail-badge,
html.theme-dark .request-detail-badge,
html.theme-dark .request-detail-badges .request-detail-badge {
    border-radius: 999px;
    padding: 0.18rem 0.5rem;
    background: #e2e8f0 !important;
    color: #0f172a !important;
    font-size: 0.72rem;
    font-weight: 800;
}

.request-detail-header h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1.35rem;
    line-height: 1.25;
}

.request-detail-sub {
    margin: 0.45rem 0 0;
    color: #64748b;
    font-size: 0.85rem;
}

.request-detail-meta-grid {
    display: grid;
    gap: 0.55rem;
    margin: 1rem 0;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.request-detail-meta-grid div {
    display: grid;
    grid-template-columns: 6.5rem 1fr;
    gap: 0.5rem;
    font-size: 0.82rem;
}

.request-detail-meta-grid dt {
    color: #64748b;
    font-weight: 700;
}

.request-detail-meta-grid dd {
    margin: 0;
    color: #0f172a;
}

.request-detail-section {
    margin-top: 1rem;
}

.request-detail-section-title {
    margin: 0 0 0.45rem;
    color: #0f172a;
    font-size: 0.92rem;
    font-weight: 800;
}

.request-detail-message {
    margin: 0;
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.request-detail-response {
    border-left: 3px solid #22d3ee;
    padding-left: 0.75rem;
}

.request-detail-response p,
.request-detail-section p {
    margin: 0;
    color: #334155;
    line-height: 1.5;
    white-space: pre-wrap;
}

.request-detail-form {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.request-detail-ack-form {
    margin-top: 1rem;
}

.crm-hero-admin {
    border: 1px solid rgb(251 191 36 / 0.25);
    background: linear-gradient(135deg, rgb(251 191 36 / 0.08), rgb(15 23 42 / 0.4));
}

.crm-hero-admin .eyebrow {
    color: #fcd34d;
}

.crm-card-hr {
    border-color: rgb(251 191 36 / 0.2);
}

.crm-hr-details {
    margin: 0.5rem 0 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.55rem;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    font-size: 0.78rem;
    color: #334155;
    display: grid;
    gap: 0.35rem;
    line-height: 1.45;
}

.crm-hr-details strong {
    color: #92400e;
    font-weight: 700;
    margin-right: 0.35rem;
}

.role-card p {
    margin: .45rem 0 .8rem;
    line-height: 1.35;
}

.role-permissions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.role-permissions span {
    border-radius: 999px;
    background: rgb(14 165 233 / .12);
    color: #075985;
    padding: .25rem .55rem;
    font-size: .72rem;
    font-weight: 900;
}

.permission-picker {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: .65rem;
    padding: .75rem;
    border: 1px solid #dbe4f0;
    border-radius: 1rem;
    background: rgb(248 250 252 / .72);
}

.permission-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 2.9rem;
    padding: .65rem .75rem;
    border: 1px solid #dbe4f0;
    border-radius: .85rem;
    background: #fff;
    cursor: pointer;
}

.permission-item:hover {
    border-color: rgb(14 165 233 / .45);
}

.permission-item input {
    width: 1rem;
    min-width: 1rem;
}

.permission-item span {
    color: #0f172a;
    font-size: .86rem;
    font-weight: 900;
    line-height: 1.2;
}

.permission-item:has(input:checked) {
    background: rgb(14 165 233 / .10);
    border-color: rgb(14 165 233 / .42);
}

.room-picker {
    border: 1px solid #dbe4f0;
    border-radius: 1rem;
    background: rgb(248 250 252 / .72);
    overflow: hidden;
}

.room-picker-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    padding: .75rem;
    border-bottom: 1px solid #dbe4f0;
}

.room-picker-head input {
    min-height: 2.35rem;
}

.room-picker-head span {
    color: #64748b;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.room-picker-list {
    max-height: 13rem;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: .55rem;
    padding: .75rem;
}

.room-picker-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 3rem;
    padding: .65rem .75rem;
    border: 1px solid #dbe4f0;
    border-radius: .85rem;
    background: #fff;
    cursor: pointer;
}

.room-picker-item:hover {
    border-color: rgb(14 165 233 / .45);
}

.room-picker-item span {
    display: grid;
    gap: .1rem;
}

.room-picker-item strong {
    color: #0f172a;
    font-size: .88rem;
}

.room-picker-item small {
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
}

.section-title {
    color: #0f172a;
    font-size: 1.35rem;
}

.rooms-grid {
    align-items: stretch;
}

.room-card {
    position: relative;
    overflow: hidden;
    min-height: 14.5rem;
    display: flex !important;
    flex-direction: column;
    justify-content: space-between;
    background:
        radial-gradient(circle at 18% 0%, rgb(34 211 238 / .13), transparent 30%),
        linear-gradient(180deg, #ffffff, #f8fafc) !important;
    border: 1px solid #dbe4f0 !important;
    box-shadow: 0 18px 42px rgb(15 23 42 / .08);
    transform: translateY(0);
}

.room-card.room-card-coverage-ok {
    background:
        radial-gradient(circle at 18% 0%, rgb(34 197 94 / .28), transparent 38%),
        linear-gradient(180deg, #ecfdf5, #d1fae5) !important;
    border-color: rgb(34 197 94 / .45) !important;
}

.room-card.room-card-coverage-bad {
    background:
        radial-gradient(circle at 18% 0%, rgb(248 113 113 / .25), transparent 38%),
        linear-gradient(180deg, #fef2f2, #fee2e2) !important;
    border-color: rgb(239 68 68 / .45) !important;
}

.room-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 26px 55px rgb(15 23 42 / .14);
}

.room-card-title {
    color: #0f172a;
    font-size: 1.25rem;
    font-weight: 850;
    letter-spacing: -.02em;
}

.room-card-city {
    margin-top: .2rem;
    color: #64748b;
    font-size: .88rem;
}

.status-pill {
    min-width: 5.25rem;
    padding: .5rem .65rem;
    border-radius: .9rem;
    text-align: right;
    background: #f1f5f9;
}

.status-pill span {
    display: block;
    color: #64748b;
    font-size: .68rem;
    font-weight: 700;
}

.status-pill strong {
    display: block;
    margin-top: .1rem;
    font-size: 1rem;
}

.status-pill.status-ok strong { color: #059669; }
.status-pill.status-warn strong { color: #b45309; }

.room-metrics > div {
    padding: .7rem;
    border: 1px solid #e2e8f0;
    border-radius: .95rem;
    background: rgb(255 255 255 / .72);
}

.room-metrics span {
    display: block;
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
}

.room-metrics strong {
    display: block;
    margin-top: .25rem;
    color: #0f172a;
    font-size: 1rem;
}

.progress-track {
    height: .55rem;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.progress-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #22d3ee, #2563eb);
}

.wallet-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #64748b;
    font-size: .9rem;
}

.wallet-row strong {
    color: #0f172a;
    font-size: 1rem;
}

.inventory-alert {
    border: 1px solid rgb(245 158 11 / .35);
    border-radius: .9rem;
    background: #fffbeb;
    color: #92400e;
    padding: .65rem .8rem;
    font-size: .86rem;
    font-weight: 800;
}

.assistance-alert {
    border: 1px solid rgb(14 165 233 / .32);
    border-radius: .9rem;
    background: rgb(14 165 233 / .10);
    color: #075985;
    padding: .65rem .8rem;
    font-size: .86rem;
    font-weight: 800;
}

.room-request-list {
    display: grid;
    gap: .8rem;
}

.room-request-card {
    border: 1px solid rgb(14 165 233 / .26);
    border-left-width: .38rem;
    border-radius: 1rem;
    background: rgb(14 165 233 / .08);
    padding: .85rem;
}

.room-request-technical {
    box-shadow: 0 14px 32px rgb(14 165 233 / .10);
}

.room-request-high,
.room-request-urgent {
    border-color: rgb(239 68 68 / .38);
    background: rgb(239 68 68 / .08);
}

.room-request-low {
    border-color: rgb(34 197 94 / .35);
    background: rgb(34 197 94 / .08);
}

.room-request-head,
.room-request-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    color: #64748b;
    font-size: .76rem;
    font-weight: 900;
}

.room-request-type,
.room-request-priority {
    border-radius: 999px;
    padding: .22rem .55rem;
    background: #e2e8f0 !important;
    color: #0f172a !important;
    font-weight: 800;
}

.room-request-high .room-request-priority,
.room-request-urgent .room-request-priority {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

.room-request-low .room-request-priority {
    background: #dcfce7 !important;
    color: #166534 !important;
}

.room-request-title {
    margin-top: .65rem;
    color: #0f172a;
    font-size: .98rem;
    font-weight: 900;
}

.room-request-body {
    margin-top: .35rem;
    color: #475569;
    font-size: .84rem;
    line-height: 1.35;
}

.room-request-meta {
    margin-top: .65rem;
}

.theme-dark .dashboard-hero {
    background:
        radial-gradient(circle at top left, rgb(34 211 238 / .22), transparent 34%),
        linear-gradient(135deg, #020617, #0f172a 55%, #111827) !important;
    border-color: rgb(34 211 238 / .28) !important;
}

.theme-dark .metric-card,
.theme-dark .room-card {
    background:
        radial-gradient(circle at 18% 0%, rgb(34 211 238 / .12), transparent 30%),
        linear-gradient(180deg, #0f172a, #111827) !important;
    border-color: #1e293b !important;
    box-shadow: 0 18px 45px rgb(0 0 0 / .35);
}

.theme-dark .room-card.room-card-coverage-ok {
    background:
        radial-gradient(circle at 18% 0%, rgb(52 211 153 / .22), transparent 40%),
        linear-gradient(180deg, rgb(6 78 59 / .55), rgb(15 23 42 / .95)) !important;
    border-color: rgb(52 211 153 / .4) !important;
}

.theme-dark .room-card.room-card-coverage-bad {
    background:
        radial-gradient(circle at 18% 0%, rgb(248 113 113 / .18), transparent 40%),
        linear-gradient(180deg, rgb(127 29 29 / .45), rgb(15 23 42 / .95)) !important;
    border-color: rgb(248 113 113 / .45) !important;
}

.theme-dark .home-customize-note {
    background: rgb(103 232 249 / .10);
    border-color: rgb(103 232 249 / .24);
    color: #e0f2fe;
}

.theme-dark .home-widget-handle {
    background: rgb(15 23 42 / .9);
    border-color: #243044;
    color: #cbd5e1;
}

.theme-dark .home-widget-handle span {
    color: #cbd5e1;
}

.theme-dark .home-widget-actions button {
    background: rgb(103 232 249 / .14);
    border-color: rgb(103 232 249 / .28);
    color: #f8fafc;
}

.theme-dark .metric-card > div,
.theme-dark .room-card-city,
.theme-dark .room-metrics span,
.theme-dark .wallet-row,
.theme-dark .status-pill span {
    color: #94a3b8 !important;
}

.theme-dark .metric-card strong,
.theme-dark .room-card-title,
.theme-dark .room-metrics strong,
.theme-dark .wallet-row strong,
.theme-dark .section-title {
    color: #f8fafc !important;
}

.theme-dark .metric-link span {
    color: #67e8f9;
}

.theme-dark .sale-summary-card {
    background:
        radial-gradient(circle at 18% 0%, rgb(34 211 238 / .12), transparent 30%),
        linear-gradient(180deg, #0f172a, #111827) !important;
    border-color: #1e293b !important;
}

.theme-dark .performance-month-form label {
    color: #94a3b8;
}

.theme-dark .performance-month-form select {
    background: #020617;
    border-color: #1e293b;
    color: #f8fafc;
}

.theme-dark .metric-card-accent {
    background:
        radial-gradient(circle at top left, rgb(34 211 238 / .18), transparent 38%),
        linear-gradient(180deg, #082f49, #0f172a) !important;
}

.theme-dark .status-pill,
.theme-dark .room-metrics > div {
    background: rgb(2 6 23 / .55) !important;
    border-color: #1e293b !important;
}

.theme-dark .progress-track {
    background: #1e293b !important;
}

.theme-dark .inventory-alert {
    background: rgb(245 158 11 / .12) !important;
    color: #fde68a !important;
}

.theme-dark .assistance-alert {
    background: rgb(14 165 233 / .12) !important;
    color: #bae6fd !important;
}

.theme-dark .room-request-card {
    background: rgb(14 165 233 / .10);
    border-color: rgb(14 165 233 / .30);
}

.theme-dark .room-request-high,
.theme-dark .room-request-urgent {
    background: rgb(239 68 68 / .12);
    border-color: rgb(239 68 68 / .36);
}

.theme-dark .room-request-low {
    background: rgb(34 197 94 / .10);
    border-color: rgb(34 197 94 / .30);
}

.theme-dark .room-request-title {
    color: #f8fafc;
}

.theme-dark .room-request-body,
.theme-dark .room-request-head,
.theme-dark .room-request-meta {
    color: #cbd5e1;
}

html.theme-dark .room-request-type,
html.theme-dark .room-request-priority,
.theme-dark .room-request-type,
.theme-dark .room-request-priority {
    background: #e2e8f0 !important;
    color: #0f172a !important;
}

.camera-box {
    min-height: 18rem;
    overflow: hidden;
    border: 1px solid #1e293b;
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at center, rgb(34 211 238 / .10), transparent 35%),
        linear-gradient(135deg, #020617, #0f172a);
}

.camera-frame {
    display: block;
    width: 100%;
    min-height: 18rem;
    border: 0;
    background: #020617;
}

.camera-placeholder {
    min-height: 18rem;
    display: grid;
    place-items: center;
    padding: 2rem;
    text-align: center;
    color: #cbd5e1;
}

.camera-placeholder h3 {
    margin: .75rem 0 .35rem;
    color: #f8fafc;
    font-size: 1.35rem;
}

.camera-placeholder p {
    max-width: 34rem;
    margin: 0;
    color: #94a3b8;
}

.camera-dot {
    width: 4.25rem;
    height: 4.25rem;
    border: 1px solid rgb(34 211 238 / .35);
    border-radius: 999px;
    background:
        radial-gradient(circle, #22d3ee 0 12%, transparent 13%),
        radial-gradient(circle, rgb(34 211 238 / .18), transparent 62%);
    box-shadow: 0 0 38px rgb(34 211 238 / .28);
}

@media (min-width: 1024px) {
    .min-h-screen.lg\:flex {
        align-items: flex-start;
    }
}

:root {
    --sidebar-width: 22.5rem;
}

.sidebar {
    position: sticky;
    top: 0;
    align-self: flex-start;
    width: var(--sidebar-width);
    height: 100vh;
    max-height: 100vh;
    padding: 1.35rem 1.2rem !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    flex-shrink: 0;
    transition: width .2s ease, padding .2s ease;
    z-index: 40;
}

.sidebar-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem;
    margin-bottom: 2rem;
}

.sidebar-toggle {
    position: static;
    flex-shrink: 0;
    margin-top: .15rem;
    min-width: 2.5rem;
    line-height: 1;
}

.sidebar-link {
    display: flex !important;
    align-items: center;
    gap: .85rem;
    min-height: 2.85rem;
    font-weight: 700;
    color: #64748b !important;
    position: relative;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.sidebar-link:hover,
.sidebar-link:focus-visible {
    color: #0f172a !important;
    background: #f1f5f9 !important;
    outline: none;
}

.sidebar-link.is-active {
    color: #0369a1 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .22), rgb(34 211 238 / .08)) !important;
    box-shadow: inset 3px 0 0 #22d3ee;
    border-color: transparent;
}

.sidebar-link.is-active .sidebar-label {
    font-weight: 900;
}

/* Menu laterale a sezioni */
.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sidebar-nav-top {
    margin-bottom: 0.35rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e2e8f0;
}

html.theme-dark .sidebar-nav-top {
    border-bottom-color: #1e293b;
}

.sidebar-nav-section {
    margin-top: 1.1rem;
}

.sidebar-nav-section:first-of-type {
    margin-top: 0.4rem;
}

.sidebar-nav-section-label {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #334155;
    padding: 0.2rem 0.85rem 0.5rem;
    user-select: none;
    line-height: 1.35;
}

.sidebar-nav-section--primary {
    margin-top: 0.15rem;
}

.sidebar-nav-section--primary .sidebar-nav-section-label {
    color: #22d3ee;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
}

.sidebar-nav-section--primary .sidebar-nav-section-items .sidebar-link {
    min-height: 3rem;
    font-size: 1rem;
}

.sidebar-nav-section--primary .sidebar-nav-section-items .sidebar-link .sidebar-label {
    font-size: 1rem;
    font-weight: 800;
}

.sidebar-nav-section--admin .sidebar-nav-section-label,
.sidebar-nav-section--admin .sidebar-nav-section-toggle .sidebar-nav-section-label {
    color: #64748b;
    font-size: 0.7rem;
}

.sidebar-nav-section-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    margin: 0;
    padding: 0.2rem 0.85rem 0.5rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.sidebar-nav-section-toggle:hover .sidebar-nav-section-label,
.sidebar-nav-section-toggle:focus-visible .sidebar-nav-section-label {
    color: #0f172a;
}

.sidebar-nav-section-toggle .sidebar-nav-section-label {
    padding: 0;
    pointer-events: none;
}

.sidebar-nav-section-chevron {
    flex-shrink: 0;
    width: 0.55rem;
    height: 0.55rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: #94a3b8;
    transform: rotate(45deg);
    transition: transform 0.15s ease, color 0.15s ease;
    margin-top: -0.15rem;
}

.sidebar-nav-section--collapsible:not(.sidebar-nav-section--collapsed) .sidebar-nav-section-chevron {
    transform: rotate(-135deg);
    margin-top: 0.15rem;
}

.sidebar-nav-section--collapsed .sidebar-nav-section-items {
    display: none;
}

html.theme-dark .sidebar-nav-section-toggle:hover .sidebar-nav-section-label,
html.theme-dark .sidebar-nav-section-toggle:focus-visible .sidebar-nav-section-label {
    color: #f8fafc;
}

html.theme-dark .sidebar-nav-section--primary .sidebar-nav-section-label {
    color: #67e8f9;
}

.sidebar-nav-section-label:not(.sidebar-nav-section-toggle .sidebar-nav-section-label) {
    pointer-events: none;
}

html.theme-dark .sidebar-nav-section-label {
    color: #f1f5f9;
    font-weight: 800;
}

html.theme-light .sidebar-nav-section-label {
    color: #334155;
    font-weight: 800;
}

.sidebar-nav-section-items {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0 0.35rem;
}

.sidebar-nav-section-items .sidebar-link {
    font-weight: 700;
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
    min-height: 2.65rem;
}

.sidebar-nav-section-items .sidebar-link .sidebar-icon {
    width: 1.35rem;
    flex-shrink: 0;
    text-align: center;
    font-size: 1rem;
    line-height: 1;
    opacity: 0.92;
}

.sidebar-nav-section-items .sidebar-link .sidebar-label {
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.3;
}

.sidebar-link--split {
    cursor: default;
}

.sidebar-label--split {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.2rem;
    min-width: 0;
}

.sidebar-split-part {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #334155;
    text-decoration: none;
    border-radius: 0.45rem;
    padding: 0.32rem 0.62rem;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    background: rgb(148 163 184 / 0.16);
    border: 1px solid rgb(148 163 184 / 0.28);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.35) inset;
    transition: color .15s ease, background .15s ease, border-color .15s ease, transform .12s ease;
}

.sidebar-split-part:hover,
.sidebar-split-part:focus-visible {
    color: #0369a1 !important;
    background: rgb(34 211 238 / 0.22);
    border-color: rgb(34 211 238 / 0.42);
    outline: none;
    transform: translateY(-1px);
}

.sidebar-link--split.is-active .sidebar-split-part.is-active-part {
    color: #0e7490;
    background: rgb(34 211 238 / 0.2);
    border-color: rgb(34 211 238 / 0.48);
    font-weight: 800;
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.12);
}

.sidebar-split-join {
    opacity: 0.7;
    padding: 0 0.05rem;
    pointer-events: none;
    user-select: none;
    font-size: 0.8rem;
    font-weight: 600;
}

html.theme-dark .sidebar-split-part {
    color: #e2e8f0;
    background: rgb(51 65 85 / 0.55);
    border-color: rgb(71 85 105 / 0.65);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
}

html.theme-dark .sidebar-split-part:hover,
html.theme-dark .sidebar-split-part:focus-visible {
    color: #f8fafc !important;
    background: rgb(71 85 105 / 0.75) !important;
    border-color: rgb(100 116 139 / 0.8) !important;
}

html.theme-dark .sidebar-link--split.is-active .sidebar-split-part.is-active-part {
    color: #a5f3fc;
    background: rgb(34 211 238 / 0.16);
    border-color: rgb(34 211 238 / 0.42);
    font-weight: 800;
}

.sidebar-nav-top .sidebar-link {
    font-weight: 700;
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
}

.sidebar-nav-top .sidebar-link .sidebar-label {
    font-weight: 700;
    font-size: 0.95rem;
}

html.theme-dark .sidebar-nav-section-items .sidebar-link {
    color: #94a3b8 !important;
}

html.theme-dark .sidebar-nav-section-items .sidebar-link:hover,
html.theme-dark .sidebar-nav-section-items .sidebar-link:focus-visible {
    color: #f1f5f9 !important;
    background: rgb(51 65 85 / 0.45) !important;
}

html.theme-dark .sidebar-nav-section-items .sidebar-link.is-active {
    color: #67e8f9 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / 0.2), rgb(34 211 238 / 0.06)) !important;
    box-shadow: inset 3px 0 0 #22d3ee;
}

html.theme-dark .sidebar-nav-section-items .sidebar-link.is-active .sidebar-label {
    font-weight: 800;
    color: #a5f3fc;
}

.notification-bell {
    border: 1px solid transparent;
    color: #64748b !important;
}

.notification-bell:hover,
.notification-bell:focus-visible {
    color: #0f172a !important;
    background: #f1f5f9 !important;
    outline: none;
}

body.notifications-open .notification-bell {
    color: #0369a1 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .22), rgb(34 211 238 / .08)) !important;
    box-shadow: inset 3px 0 0 #22d3ee;
}

.notification-count {
    margin-left: auto;
    min-width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgb(239 68 68 / .92);
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
}

.notification-panel {
    position: fixed;
    left: calc(var(--sidebar-width, 22.5rem) + 0.85rem);
    top: 5rem;
    z-index: 300;
    width: min(22rem, calc(100vw - 1.5rem));
    max-height: min(32rem, calc(100vh - 6rem));
    padding: 1.1rem;
    border: 1px solid #dbe4f0;
    border-radius: 1.25rem;
    background: rgb(255 255 255 / .96);
    box-shadow: 0 24px 55px rgb(15 23 42 / .18);
    opacity: 0;
    pointer-events: none;
    transform: translate(-.5rem, -.25rem) scale(.98);
    transition: opacity .16s ease, transform .16s ease;
    overflow-y: auto;
    backdrop-filter: blur(14px);
}

body.sidebar-collapsed .notification-panel {
    left: 7.15rem;
}

body.notifications-open .notification-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translate(0, 0) scale(1);
}

.notification-backdrop {
    position: fixed;
    inset: 0;
    z-index: 280;
    display: none;
    background: transparent;
}

body.notifications-open .notification-backdrop {
    display: block;
}

.notification-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.notification-panel-header-main {
    min-width: 0;
}

.notification-panel-actions {
    margin-bottom: 0.85rem;
}

.notification-mark-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 0;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgb(34 211 238 / .35);
    border-radius: 999px;
    background: rgb(34 211 238 / .1);
    color: #0e7490;
    font-size: .72rem;
    font-weight: 700;
    cursor: pointer;
}

.notification-panel-header h2 {
    margin: .15rem 0 0;
    color: #0f172a;
    font-size: 1.35rem;
}

.notification-mark-all:hover {
    background: rgb(34 211 238 / .18);
}

.theme-dark .notification-mark-all {
    color: #67e8f9;
    border-color: rgb(34 211 238 / .4);
    background: rgb(34 211 238 / .12);
}

.notification-close {
    width: 2.3rem;
    height: 2.3rem;
    border-radius: 999px;
    background: rgb(15 23 42 / .10);
    color: #0f172a;
    font-size: 1.35rem;
    font-weight: 900;
}

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

.notification-item {
    display: block;
    padding: .9rem;
    border: 1px solid #dbe4f0;
    border-left-width: .32rem;
    border-radius: 1rem;
    background: #fff;
    color: #0f172a;
    text-decoration: none;
}

.notification-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgb(15 23 42 / .1);
}

.notification-item.notification-read {
    opacity: .42;
    filter: grayscale(.35);
}

.notification-item-head {
    margin-bottom: .35rem;
    color: #64748b;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.notification-item strong {
    display: block;
    color: #0f172a;
    font-size: .95rem;
}

.notification-item p {
    margin: .35rem 0 0;
    color: #64748b;
    font-size: .83rem;
    line-height: 1.35;
}

.missed-punch-toast {
    position: fixed;
    top: 5.5rem;
    right: 1rem;
    z-index: 12050;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    max-width: min(28rem, calc(100vw - 2rem));
    padding: 0.55rem 0.7rem 0.55rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(239 68 68 / 0.45);
    background: rgb(69 10 10 / 0.94);
    box-shadow: 0 10px 28px rgb(0 0 0 / 0.35);
    color: #fecaca;
    animation: missed-punch-toast-in 0.35s ease;
}

.missed-punch-toast.is-hiding {
    animation: missed-punch-toast-out 0.32s ease forwards;
}

@keyframes missed-punch-toast-in {
    from { opacity: 0; transform: translateY(-8px) translateX(8px); }
    to { opacity: 1; transform: translateY(0) translateX(0); }
}

@keyframes missed-punch-toast-out {
    to { opacity: 0; transform: translateY(-6px); }
}

.missed-punch-toast-icon {
    flex: 0 0 auto;
    font-size: 1rem;
    line-height: 1;
}

.missed-punch-toast-copy {
    margin: 0;
    min-width: 0;
    font-size: 0.78rem;
    line-height: 1.35;
}

.missed-punch-toast-copy strong {
    display: block;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
}

.missed-punch-toast-copy span {
    display: block;
    color: #fca5a5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.missed-punch-toast-link {
    flex: 0 0 auto;
    padding: 0.28rem 0.55rem;
    border-radius: 0.45rem;
    background: rgb(239 68 68 / 0.22);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.missed-punch-toast-link:hover {
    background: rgb(239 68 68 / 0.38);
}

.missed-punch-toast-close {
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    border: none;
    border-radius: 999px;
    background: rgb(15 23 42 / 0.45);
    color: #fecaca;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.missed-punch-toast-close:hover {
    background: rgb(15 23 42 / 0.7);
    color: #fff;
}

html.theme-light .missed-punch-toast {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
    box-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
}

html.theme-light .missed-punch-toast-copy strong {
    color: #7f1d1d;
}

html.theme-light .missed-punch-toast-copy span {
    color: #b91c1c;
}

html.theme-light .missed-punch-toast-link {
    background: #fee2e2;
    color: #991b1b;
}

html.theme-light .missed-punch-toast-close {
    background: #fee2e2;
    color: #991b1b;
}

@media (max-width: 640px) {
    .missed-punch-toast {
        top: auto;
        bottom: 1rem;
        left: 1rem;
        right: 1rem;
        max-width: none;
    }
}

.notification-warning { border-left-color: #f59e0b; }
.notification-danger { border-left-color: #ef4444; }
.notification-info { border-left-color: #0ea5e9; }
.notification-success { border-left-color: #22c55e; }

.notification-empty {
    padding: 1rem;
    border: 1px dashed #cbd5e1;
    border-radius: 1rem;
    color: #64748b;
    text-align: center;
}

.sidebar-icon {
    width: 1.55rem;
    min-width: 1.55rem;
    text-align: center;
    font-size: 1.12rem;
    line-height: 1;
    display: none;
}

.sidebar-label,
.sidebar-brand {
    transition: opacity .15s ease, transform .15s ease;
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: .85rem;
    flex: 1;
    min-width: 0;
}

.sidebar-brand-text {
    min-width: 0;
    flex: 1;
}

.sidebar-brand-title {
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.25;
    color: #67e8f9;
}

.sidebar-brand-user {
    margin-top: .2rem;
    font-size: .8rem;
    line-height: 1.35;
    color: #94a3b8;
    word-break: break-word;
}

body.sidebar-collapsed .sidebar {
    width: 6.4rem !important;
    padding-left: 1.15rem !important;
    padding-right: 1.15rem !important;
    position: sticky;
    top: 0;
    height: 100vh;
    max-height: 100vh;
    overflow: visible;
    z-index: 120;
}

body.sidebar-collapsed .sidebar-header {
    justify-content: center;
    margin-bottom: 1.25rem;
}

body.sidebar-collapsed .sidebar-brand {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-.5rem);
    width: 0;
    height: 0;
    overflow: hidden;
    flex: 0;
}

body.sidebar-collapsed .sidebar-label {
    opacity: 0;
    pointer-events: none;
    width: 0;
    overflow: hidden;
}

body.sidebar-collapsed .sidebar-nav-section-label {
    display: none;
}

body.sidebar-collapsed .sidebar-nav-section {
    margin-top: 0.55rem;
}

body.sidebar-collapsed .sidebar-nav-section:first-of-type {
    margin-top: 0.2rem;
}

body.sidebar-collapsed .sidebar-nav-section-items {
    padding: 0;
}

body.sidebar-collapsed .notification-count {
    position: absolute;
    top: .2rem;
    right: .25rem;
    margin-left: 0;
}

body.sidebar-collapsed .sidebar-icon {
    display: inline-block;
    position: relative;
    z-index: 2;
}

body.sidebar-collapsed .sidebar nav {
    overflow: visible;
}

body.sidebar-collapsed .sidebar-link {
    justify-content: center;
    padding-left: .65rem !important;
    padding-right: .65rem !important;
    position: relative;
    overflow: visible;
    z-index: 1;
}

@media (min-width: 1024px) {
    body.sidebar-collapsed .sidebar-link:hover,
    body.sidebar-collapsed .sidebar-link:focus-visible {
        z-index: 130;
        background: #f1f5f9 !important;
        border-radius: .75rem;
        color: #0f172a !important;
    }

    html.theme-dark body.sidebar-collapsed .sidebar-link:hover,
    html.theme-dark body.sidebar-collapsed .sidebar-link:focus-visible {
        background: #1e293b !important;
        color: #f8fafc !important;
    }

    body.sidebar-collapsed .sidebar-link:hover .sidebar-label,
    body.sidebar-collapsed .sidebar-link:focus-visible .sidebar-label {
        opacity: 1;
        width: auto;
        max-width: none;
        overflow: visible;
        pointer-events: none;
        position: absolute;
        left: calc(100% + .65rem);
        top: 50%;
        transform: translateY(-50%);
        z-index: 140;
        padding: .5rem .75rem;
        border: 1px solid #dbe4f0;
        border-radius: .75rem;
        background: #fff;
        color: #0f172a;
        font-size: .82rem;
        font-weight: 800;
        white-space: nowrap;
        box-shadow: 0 12px 32px rgb(15 23 42 / .18);
        isolation: isolate;
    }

    html.theme-dark body.sidebar-collapsed .sidebar-link:hover .sidebar-label,
    html.theme-dark body.sidebar-collapsed .sidebar-link:focus-visible .sidebar-label {
        background: #1e293b;
        border-color: #334155;
        color: #f8fafc;
        box-shadow: 0 12px 32px rgb(0 0 0 / .45);
    }

    /* Voci divise (Log e Backup, Portale e Catalogo, …): flyout cliccabile a destra */
    body.sidebar-collapsed .sidebar-link--split {
        cursor: default;
    }

    body.sidebar-collapsed .sidebar-link--split:hover,
    body.sidebar-collapsed .sidebar-link--split:focus-within {
        z-index: 135;
    }

    body.sidebar-collapsed .sidebar-link--split:hover .sidebar-label--split,
    body.sidebar-collapsed .sidebar-link--split:focus-within .sidebar-label--split {
        opacity: 1;
        width: auto;
        max-width: none;
        overflow: visible;
        pointer-events: auto;
        position: absolute;
        left: calc(100% + .55rem);
        top: 50%;
        transform: translateY(-50%);
        z-index: 150;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.28rem;
        padding: 0.42rem 0.52rem;
        border: 1px solid #dbe4f0;
        border-radius: 0.65rem;
        background: #fff;
        color: #0f172a;
        font-size: inherit;
        font-weight: inherit;
        white-space: nowrap;
        box-shadow: 0 12px 32px rgb(15 23 42 / .18);
        isolation: isolate;
    }

    body.sidebar-collapsed .sidebar-link--split:hover .sidebar-split-part,
    body.sidebar-collapsed .sidebar-link--split:focus-within .sidebar-split-part {
        pointer-events: auto;
        cursor: pointer;
    }

    body.sidebar-collapsed .sidebar-link--split:hover .sidebar-split-join,
    body.sidebar-collapsed .sidebar-link--split:focus-within .sidebar-split-join {
        display: inline;
        opacity: 0.72;
        font-size: 0.78rem;
        font-weight: 600;
    }

    html.theme-dark body.sidebar-collapsed .sidebar-link--split:hover .sidebar-label--split,
    html.theme-dark body.sidebar-collapsed .sidebar-link--split:focus-within .sidebar-label--split {
        background: #1e293b;
        border-color: #334155;
        color: #f8fafc;
        box-shadow: 0 12px 32px rgb(0 0 0 / .45);
    }

    body.sidebar-collapsed main {
        position: relative;
        z-index: 1;
    }
}

body.sidebar-collapsed .sidebar-toggle {
    margin-top: 0;
}

body.sidebar-collapsed main {
    border-left: 1px solid #dbe4f0;
}

body.sidebar-collapsed .app-topbar {
    padding-left: 2rem;
}

.wallet-growth-card {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgb(34 211 238 / .12), transparent 32%),
        linear-gradient(180deg, #ffffff, #f8fafc) !important;
    border-color: #dbe4f0 !important;
    box-shadow: 0 18px 42px rgb(15 23 42 / .08);
}

.wallet-growth-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 26px 55px rgb(15 23 42 / .13);
}

.growth-badge {
    min-width: 5rem;
    display: grid;
    place-items: center;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: rgb(255 255 255 / .76);
    padding: .5rem;
}

.growth-badge span {
    font-size: 1.35rem;
}

.growth-badge strong {
    display: block;
    margin-top: .1rem;
    font-size: 1.05rem;
}

.theme-dark .wallet-growth-card {
    background:
        radial-gradient(circle at top right, rgb(34 211 238 / .15), transparent 32%),
        linear-gradient(180deg, #0f172a, #111827) !important;
    border-color: #1e293b !important;
    box-shadow: 0 18px 45px rgb(0 0 0 / .35);
}

.theme-dark .growth-badge {
    background: rgb(2 6 23 / .55) !important;
    border-color: #1e293b !important;
}

.wallet-cards-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .wallet-cards-grid:not(.wallet-cards-grid--solo) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.wallet-cards-grid--solo .wallet-growth-card {
    width: 100%;
    padding: 1.75rem 2rem 1.5rem;
    border-color: rgb(34 211 238 / 0.32) !important;
    box-shadow: 0 22px 50px rgb(2 6 23 / 0.4);
}

.wallet-cards-grid--solo .wallet-growth-card > .flex:first-child .text-lg {
    font-size: 1.45rem;
    letter-spacing: -0.02em;
}

.wallet-cards-grid--solo .wallet-growth-card > .flex:first-child .text-sm {
    margin-top: 0.2rem;
}

.wallet-cards-grid--solo .growth-badge {
    min-width: 6.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 1.15rem;
    border-color: rgb(34 211 238 / 0.25);
}

.wallet-cards-grid--solo .growth-badge span {
    font-size: 1.6rem;
}

.wallet-cards-grid--solo .growth-badge strong {
    font-size: 1.15rem;
}

.wallet-cards-grid--solo .wallet-growth-card > .grid {
    margin-top: 1.5rem !important;
    gap: 1rem !important;
}

@media (min-width: 640px) {
    .wallet-cards-grid--solo .wallet-growth-card > .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.wallet-cards-grid--solo .wallet-growth-card > .grid > div {
    padding: 1.2rem 1.35rem !important;
    border-radius: 14px;
}

.wallet-cards-grid--solo .wallet-growth-card > .grid .text-2xl {
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    line-height: 1.15;
}

.wallet-cards-grid--solo .progress-track {
    height: 10px;
    margin-top: 1.5rem !important;
    border-radius: 999px;
}

.wallet-cards-grid--solo .wallet-growth-card > .flex:last-child {
    margin-top: 1rem !important;
    font-size: 0.95rem;
}

.theme-dark .wallet-cards-grid--solo .wallet-growth-card {
    background:
        radial-gradient(ellipse 75% 55% at 100% 0%, rgb(34 211 238 / 0.16), transparent 52%),
        radial-gradient(ellipse 55% 45% at 0% 100%, rgb(52 211 153 / 0.1), transparent 48%),
        linear-gradient(180deg, #0f172a, #111827) !important;
}

html.theme-light .wallet-cards-grid--solo .wallet-growth-card {
    background:
        radial-gradient(ellipse 75% 55% at 100% 0%, rgb(34 211 238 / 0.12), transparent 52%),
        linear-gradient(180deg, #ffffff, #f1f5f9) !important;
    border-color: rgb(34 211 238 / 0.35) !important;
}

/* —— Wallet ledger (lista compatta, scalabile) —— */
.wallet-ledger-wrap {
    margin-bottom: 0.5rem;
}

.wallet-ledger {
    border-radius: 1rem;
    border: 1px solid #334155;
    background: rgb(15 23 42 / 0.55);
    padding: 0.85rem 1rem 1rem;
}

.wallet-ledger-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.wallet-ledger-kpi {
    padding: 0.55rem 0.65rem;
    border-radius: 0.55rem;
    border: 1px solid #1e293b;
    background: rgb(2 6 23 / 0.55);
}

.wallet-ledger-kpi span {
    display: block;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.wallet-ledger-kpi strong {
    display: block;
    margin-top: 0.2rem;
    font-size: 1.1rem;
    font-weight: 800;
    color: #67e8f9;
    line-height: 1.1;
}

.wallet-ledger-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.55rem 0.75rem;
    margin-bottom: 0.55rem;
}

.wallet-ledger-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.45rem 0.55rem;
}

.wallet-ledger-search-wrap {
    flex: 1 1 12rem;
    min-width: 10rem;
    max-width: 18rem;
}

.wallet-ledger-search {
    width: 100%;
    padding: 0.45rem 0.65rem;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.65);
    color: #e2e8f0;
    font-size: 0.82rem;
}

.wallet-ledger-hint {
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    color: #64748b;
}

.wallet-ledger-scroll {
    max-height: min(70vh, 32rem);
    overflow: auto;
    border-radius: 0.65rem;
    border: 1px solid #1e293b;
}

.wallet-ledger-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.wallet-ledger-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid #334155;
    background: rgb(15 23 42 / 0.98);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #94a3b8;
    text-align: left;
    white-space: nowrap;
}

.wallet-ledger-table td {
    padding: 0.45rem 0.65rem;
    border-top: 1px solid rgb(30 41 59 / 0.65);
    vertical-align: middle;
    color: #cbd5e1;
}

.wallet-ledger-row:hover td {
    background: rgb(34 211 238 / 0.05);
}

.wallet-ledger-operator strong {
    color: #f1f5f9;
    font-weight: 700;
}

.wallet-ledger-amount {
    color: #67e8f9;
    font-variant-numeric: tabular-nums;
}

.wallet-ledger-progress-inner {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 7rem;
}

.wallet-ledger-progress-track {
    flex: 1;
    height: 0.35rem;
    border-radius: 999px;
    background: #1e293b;
    overflow: hidden;
}

.wallet-ledger-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0891b2, #22d3ee);
}

.wallet-ledger-progress-pct {
    font-size: 0.72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #94a3b8;
    min-width: 2.2rem;
    text-align: right;
}

.wallet-ledger-mood {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.wallet-ledger-mood.is-ok { color: #6ee7b7; }
.wallet-ledger-mood.is-growth { color: #67e8f9; }
.wallet-ledger-mood.is-start { color: #fcd34d; }
.wallet-ledger-mood.is-idle { color: #64748b; }

.wallet-ledger-empty,
.wallet-ledger-search-empty {
    margin: 0.5rem 0 0;
    text-align: center;
    color: #64748b;
    font-size: 0.85rem;
}

.wallet-ledger-search-empty.hidden {
    display: none;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 720px) {
    .wallet-ledger-table thead {
        display: none;
    }

    .wallet-ledger-row {
        display: grid;
        gap: 0.2rem;
        padding: 0.55rem 0.65rem;
    }

    .wallet-ledger-row td {
        display: flex;
        justify-content: space-between;
        gap: 0.75rem;
        border: none;
        padding: 0.15rem 0;
    }

    .wallet-ledger-row td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        color: #64748b;
    }

    .wallet-ledger-scroll {
        max-height: none;
    }
}

html.theme-light .wallet-ledger {
    background: #fff;
    border-color: #e2e8f0;
}

html.theme-light .wallet-ledger-kpi {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .wallet-ledger-kpi strong {
    color: #0e7490;
}

html.theme-light .wallet-ledger-table thead th {
    background: #f1f5f9;
    color: #475569;
}

html.theme-light .wallet-ledger-row:hover td {
    background: rgb(6 182 212 / 0.06);
}

html.theme-light .wallet-ledger-operator strong {
    color: #0f172a;
}

.wallet-timbratura-panel {
    background: linear-gradient(180deg, #ffffff, #f8fafc) !important;
    border-color: #dbe4f0 !important;
}

.wallet-timbratura-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.wallet-timbratura-title {
    margin: .25rem 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
}

.wallet-timbratura-sub {
    margin: 0;
    color: #64748b;
    font-size: .88rem;
    max-width: 42rem;
}

.presence-manual-hint {
    margin: .35rem 0 0;
    padding: .65rem .85rem;
    border-radius: .75rem;
    border: 1px solid #f59e0b40;
    background: #fffbeb;
    color: #92400e;
    font-size: .84rem;
    line-height: 1.45;
    max-width: 44rem;
}

.presence-manual-flash {
    margin-bottom: 1rem;
    padding: .65rem .85rem;
    border-radius: .75rem;
    font-size: .88rem;
    font-weight: 600;
}

.presence-manual-flash--ok {
    border: 1px solid #34d39955;
    background: #ecfdf5;
    color: #047857;
}

.presence-manual-flash--err {
    border: 1px solid #f8717155;
    background: #fef2f2;
    color: #b91c1c;
}

.presence-manual-form .wallet-filter-label {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.wallet-timbratura-total {
    min-width: 10rem;
    padding: .85rem 1rem;
    border-radius: 1rem;
    border: 1px solid #dbe4f0;
    background: #f8fafc;
    text-align: right;
}

.wallet-timbratura-total span {
    display: block;
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.wallet-timbratura-total strong {
    display: block;
    margin-top: .15rem;
    color: #0f172a;
    font-size: 1.5rem;
}

.wallet-timbratura-total small {
    display: block;
    margin-top: .2rem;
    color: #94a3b8;
    font-size: .75rem;
}

.wallet-punch-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid #dbe4f0;
    background: #f8fafc;
}

.wallet-punch-status strong {
    display: block;
    font-size: 1.2rem;
    color: #0f172a;
}

.wallet-punch-status.is-open strong {
    color: #047857;
}

.wallet-punch-status p {
    margin: .35rem 0 0;
    color: #64748b;
    font-size: .85rem;
}

.wallet-punch-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .65rem;
}

.wallet-punch-btn {
    border: none;
    border-radius: 999px;
    padding: .55rem 1.1rem;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}

.wallet-punch-btn-in {
    background: #34d399;
    color: #052e16;
}

.wallet-punch-btn-out {
    background: #f87171;
    color: #fff;
}

.wallet-period-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .85rem;
}

.wallet-period-tab {
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    padding: .35rem .85rem;
    background: #fff;
    color: #334155;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
}

.wallet-period-tab.is-active {
    border-color: #22d3ee;
    background: rgb(34 211 238 / .14);
    color: #0e7490;
}

.wallet-timbratura-filters,
.wallet-manual-shift-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .65rem;
    margin-bottom: 1rem;
}

.wallet-filter-label,
.wallet-manual-shift-form label {
    display: grid;
    gap: .25rem;
    font-size: .72rem;
    font-weight: 700;
    color: #64748b;
}

.wallet-filter-input,
.wallet-manual-shift-form input,
.wallet-manual-shift-form select {
    min-width: 9rem;
    border: 1px solid #dbe4f0;
    border-radius: .65rem;
    padding: .45rem .55rem;
    background: #fff;
    color: #0f172a;
    font-size: .85rem;
}

.wallet-filter-submit,
.wallet-manual-shift-btn {
    border: none;
    border-radius: .65rem;
    padding: .5rem .9rem;
    background: #22d3ee;
    color: #0f172a;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}

.wallet-filter-export {
    display: inline-flex;
    align-items: center;
    align-self: flex-end;
    border-radius: .65rem;
    padding: .5rem .9rem;
    border: 2px solid #0e7490;
    background: #ecfeff;
    color: #0e7490;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.wallet-filter-export:hover {
    background: #cffafe;
    color: #155e75;
}

.wallet-shift-table-wrap {
    overflow: auto;
    border: 1px solid #e2e8f0;
    border-radius: .85rem;
}

.wallet-shift-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}

.wallet-shift-table th {
    padding: .65rem .75rem;
    background: #f1f5f9;
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
    text-align: left;
    white-space: nowrap;
}

.wallet-shift-table td {
    padding: .65rem .75rem;
    border-top: 1px solid #e2e8f0;
    color: #0f172a;
    vertical-align: middle;
}

.wallet-shift-empty {
    text-align: center;
    color: #94a3b8;
    padding: 1.5rem !important;
}

.wallet-punch-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    margin-right: .25rem;
    border-radius: .35rem;
    padding: .1rem .35rem;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .03em;
}

.wallet-punch-in {
    background: rgb(52 211 153 / .18);
    color: #047857;
}

.wallet-punch-out {
    background: rgb(248 113 113 / .18);
    color: #b91c1c;
}

.wallet-shift-status {
    border-radius: 999px;
    padding: .15rem .55rem;
    font-size: .72rem;
    font-weight: 800;
}

.wallet-shift-status-open {
    background: rgb(52 211 153 / .16);
    color: #047857;
}

.wallet-shift-status-closed {
    background: #e2e8f0;
    color: #475569;
}

.wallet-shift-edit-form {
    display: grid;
    gap: .35rem;
    min-width: 14rem;
}

.wallet-shift-edit-form input,
.wallet-shift-edit-form select {
    width: 100%;
    border: 1px solid #dbe4f0;
    border-radius: .5rem;
    padding: .35rem .45rem;
    font-size: .78rem;
}

.wallet-shift-manage-stack {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 12rem;
}

.shift-delete-form {
    display: flex;
    justify-content: flex-end;
}

.shift-delete-btn {
    border: 1px solid #f8717155;
    background: #fef2f2;
    color: #b91c1c;
    border-radius: 0.65rem;
    padding: 0.35rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.shift-correction-row .shift-delete-form {
    justify-content: flex-start;
    margin-top: 0.35rem;
}

.theme-dark .shift-delete-btn {
    background: #450a0a;
    border-color: #f8717144;
    color: #fca5a5;
}

.wallet-shift-edit-save {
    border: none;
    border-radius: .5rem;
    padding: .4rem .55rem;
    background: #22d3ee;
    color: #0f172a;
    font-size: .75rem;
    font-weight: 800;
    cursor: pointer;
}

.theme-dark .wallet-timbratura-panel {
    background: linear-gradient(180deg, #0f172a, #111827) !important;
    border-color: #1e293b !important;
}

.theme-dark .wallet-timbratura-title,
.theme-dark .wallet-timbratura-total strong,
.theme-dark .wallet-shift-table td,
.theme-dark .wallet-punch-status strong {
    color: #f8fafc;
}

.theme-dark .wallet-timbratura-sub,
.theme-dark .wallet-timbratura-total span,
.theme-dark .wallet-punch-status p {
    color: #94a3b8;
}

.theme-dark .presence-manual-hint {
    border-color: #f59e0b33;
    background: #422006;
    color: #fcd34d;
}

.theme-dark .presence-manual-flash--ok {
    border-color: #34d39944;
    background: #052e16;
    color: #6ee7b7;
}

.theme-dark .presence-manual-flash--err {
    border-color: #f8717144;
    background: #450a0a;
    color: #fca5a5;
}

.theme-dark .wallet-timbratura-total,
.theme-dark .wallet-punch-card,
.theme-dark .wallet-shift-table th {
    background: #0b1220;
    border-color: #243044;
}

.theme-dark .wallet-period-tab,
.theme-dark .wallet-filter-input,
.theme-dark .wallet-manual-shift-form input,
.theme-dark .wallet-manual-shift-form select,
.theme-dark .wallet-shift-edit-form input,
.theme-dark .wallet-shift-edit-form select {
    background: #0f172a;
    border-color: #243044;
    color: #e2e8f0;
}

.theme-dark .wallet-filter-export {
    background: rgb(8 51 68 / .45);
    border-color: #22d3ee;
    color: #67e8f9;
}

.theme-dark .wallet-filter-export:hover {
    background: rgb(14 116 144 / .35);
    color: #cffafe;
}

.theme-dark .wallet-shift-table td {
    border-color: #243044;
}

@media (max-width: 900px) {
    .wallet-shift-table thead {
        display: none;
    }

    .wallet-shift-table tr {
        display: grid;
        gap: .35rem;
        padding: .75rem;
        border-top: 1px solid #e2e8f0;
    }

    .wallet-shift-table td {
        border: none;
        padding: 0;
    }

    .wallet-shift-table td::before {
        content: attr(data-label) ': ';
        color: #64748b;
        font-weight: 700;
    }
}

.users-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #334155;
}

.users-search-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    min-width: min(100%, 16rem);
}

.users-search-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #94a3b8;
}

.users-search-field input[type="search"] {
    width: 100%;
    border-radius: 0.65rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.55rem 0.75rem;
    font-size: 0.9rem;
}

.users-search-field input[type="search"]::placeholder {
    color: #64748b;
}

.users-search-field input[type="search"]:focus {
    outline: none;
    border-color: rgb(34 211 238 / 0.55);
    box-shadow: 0 0 0 2px rgb(34 211 238 / 0.15);
}

.users-search-count {
    font-size: 0.8rem;
    font-weight: 600;
    color: #94a3b8;
    white-space: nowrap;
}

.users-search-empty {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: #94a3b8;
    text-align: center;
}

.users-search-empty.hidden {
    display: none;
}

.users-table tbody tr[hidden] {
    display: none;
}

.users-cred-hint {
    line-height: 1.45;
}

.users-cred-password {
    min-width: 7.5rem;
    max-width: 14rem;
}

.users-cred-wrap,
.users-password-field {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.users-password-field {
    position: relative;
}

.users-password-field .users-password-input {
    flex: 1;
    min-width: 0;
    padding-right: 2.35rem;
}

.users-password-field .users-cred-eye {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
}

.users-cred-mono {
    font-family: var(--vrc-font-mono);
    font-size: 0.8125rem;
    color: #a5f3fc;
    user-select: all;
    min-width: 0;
}

.users-cred-mask {
    letter-spacing: 0.12em;
    color: #94a3b8;
}

.users-cred-search {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.users-cred-eye {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    border: 1px solid rgb(100 116 139 / 0.45);
    border-radius: 0.45rem;
    background: rgb(30 41 59 / 0.55);
    color: #cbd5e1;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.users-cred-eye:hover,
.users-cred-eye:focus-visible {
    background: rgb(51 65 85 / 0.85);
    border-color: rgb(34 211 238 / 0.45);
    color: #a5f3fc;
    outline: none;
}

.users-cred-eye-svg {
    display: block;
}

.users-cred-eye-hide {
    display: none;
}

.users-cred-eye.is-revealed .users-cred-eye-show {
    display: none;
}

.users-cred-eye.is-revealed .users-cred-eye-hide {
    display: block;
}

.users-cred-missing {
    color: #64748b;
}

html.theme-light .users-cred-mask {
    color: #64748b;
}

html.theme-light .users-cred-eye {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #475569;
}

html.theme-light .users-cred-eye:hover,
html.theme-light .users-cred-eye:focus-visible {
    background: #e2e8f0;
    border-color: #0e7490;
    color: #0e7490;
}

html.theme-light .users-cred-mono {
    color: #0e7490;
}

html.theme-light .users-cred-missing {
    color: #94a3b8;
}

.backups-archive-shell {
    margin: -1.5rem;
    min-height: calc(100dvh - 4.85rem);
    display: flex;
    flex-direction: column;
}

.backups-archive-panel {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 1rem 1.35rem 1.5rem;
    border: none;
    border-radius: 0;
    background: #0f172a;
}

.backups-archive-table {
    border-collapse: collapse;
}

.backups-archive-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 0.65rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
    background: inherit;
    border-bottom: 1px solid #334155;
}

.backups-archive-table tbody td {
    padding: 0.75rem 0.5rem;
    vertical-align: top;
    border-bottom: 1px solid #1e293b;
}

.backups-archive-empty {
    padding: 2rem 0.5rem !important;
    text-align: center;
    color: #94a3b8;
}

html.theme-light .backups-archive-panel {
    background: #ffffff;
}

html.theme-light .backups-archive-table thead th {
    color: #64748b;
    border-bottom-color: #e2e8f0;
    background: #ffffff;
}

html.theme-light .backups-archive-table tbody td {
    color: #0f172a;
    border-bottom-color: #e2e8f0;
}

html.theme-light .backups-archive-empty {
    color: #64748b;
}

.catalog-flash {
    margin-bottom: 1rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(16 185 129 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
    padding: 0.65rem 0.85rem;
    font-size: 0.85rem;
}

.catalog-stats {
    display: grid;
    gap: 0.65rem;
}

.catalog-stat {
    border-radius: 0.65rem;
    border: 1px solid rgb(34 211 238 / 0.25);
    background: rgb(15 23 42 / 0.55);
    padding: 0.55rem 0.75rem;
}

.catalog-stat span {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.catalog-stat strong {
    display: block;
    margin-top: 0.15rem;
    font-size: 1.25rem;
    color: #e2e8f0;
}

.catalog-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
}

.catalog-search-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: min(100%, 14rem);
}

.catalog-search-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #94a3b8;
}

.catalog-search-field input[type="search"] {
    border-radius: 0.55rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.45rem 0.65rem;
    font-size: 0.85rem;
}

.catalog-search-empty {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: #94a3b8;
    text-align: center;
}

.catalog-search-empty.hidden,
.catalog-table tbody tr[hidden] {
    display: none;
}

html.theme-light .catalog-stat {
    background: #f8fafc;
    border-color: #cbd5e1;
}

html.theme-light .catalog-stat strong {
    color: #0f172a;
}

html.theme-light .catalog-search-field input[type="search"] {
    background: #ffffff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .catalog-flash {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

.row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    white-space: nowrap;
}

.row-actions form {
    margin: 0;
}

.icon-action {
    width: 2rem;
    height: 2rem;
    display: inline-grid !important;
    place-items: center;
    border-radius: .65rem;
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
    border: 1px solid transparent;
    box-shadow: none !important;
}

.icon-edit {
    background: rgb(14 165 233 / .12) !important;
    border-color: rgb(14 165 233 / .22) !important;
    color: #0284c7 !important;
}

.icon-delete {
    background: rgb(239 68 68 / .12) !important;
    border-color: rgb(239 68 68 / .22) !important;
    color: #dc2626 !important;
    padding: 0 !important;
}

.icon-edit:hover,
.icon-delete:hover {
    transform: translateY(-1px);
    filter: brightness(.96);
}

.theme-dark .icon-edit {
    color: #67e8f9 !important;
    background: rgb(34 211 238 / .12) !important;
    border-color: rgb(34 211 238 / .24) !important;
}

.theme-dark .icon-delete {
    color: #fca5a5 !important;
    background: rgb(239 68 68 / .13) !important;
    border-color: rgb(239 68 68 / .24) !important;
}

.theme-dark .sidebar-link {
    color: #cbd5e1 !important;
    font-weight: 700;
}

.theme-dark .sidebar-link .sidebar-label {
    font-weight: 700;
}

.theme-dark .sidebar-link:hover,
.theme-dark .sidebar-link:focus-visible {
    color: #f8fafc !important;
    background: rgb(248 250 252 / .06) !important;
}

.theme-dark .sidebar-link.is-active {
    color: #67e8f9 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .18), rgb(34 211 238 / .05)) !important;
    box-shadow: inset 3px 0 0 #22d3ee;
}

.theme-dark .notification-bell {
    border-color: transparent;
    color: #94a3b8 !important;
}

.theme-dark .notification-bell:hover,
.theme-dark .notification-bell:focus-visible {
    color: #f8fafc !important;
    background: rgb(248 250 252 / .06) !important;
}

.theme-dark body.notifications-open .notification-bell {
    color: #67e8f9 !important;
    background: linear-gradient(90deg, rgb(34 211 238 / .18), rgb(34 211 238 / .05)) !important;
    box-shadow: inset 3px 0 0 #22d3ee;
}

.theme-dark .notification-panel {
    background: rgb(15 23 42 / .96);
    border-color: #243044;
    box-shadow: 24px 0 55px rgb(0 0 0 / .35);
}

.theme-dark .notification-panel-header h2,
.theme-dark .notification-item strong {
    color: #f8fafc;
}

.theme-dark .notification-close {
    background: rgb(248 250 252 / .08);
    color: #f8fafc;
}

.theme-dark .notification-item {
    background: #020617;
    border-color: #243044;
    color: #f8fafc;
}

.theme-dark .notification-item p,
.theme-dark .notification-item-head,
.theme-dark .notification-empty {
    color: #94a3b8;
}

.theme-dark .inventory-room-chip {
    background: #0f172a;
    border-color: #243044;
    color: #cbd5e1;
}

.theme-dark .inventory-room-chip:hover,
.theme-dark .inventory-room-chip.is-active {
    border-color: #22d3ee;
    background: rgb(34 211 238 / .12);
    color: #67e8f9;
}

.theme-dark .inventory-dropdown {
    background:#020617;
    border-color:#243044;
}

.theme-dark .inventory-dropdown-alert {
    background:rgb(245 158 11 / .12);
    border-color:rgb(245 158 11 / .32);
}

.theme-dark .inventory-dropdown-asset {
    background: rgb(30 58 138 / .22);
    border-color: rgb(96 165 250 / .35);
}

.theme-dark .inventory-subsection-title {
    color: #e2e8f0;
}

.theme-dark .inventory-summary-name {
    color:#f8fafc;
}

.theme-dark .inventory-summary-meta,
.theme-dark .inventory-dropdown-note {
    color:#94a3b8;
}

.theme-dark .inventory-dropdown summary::after {
    color:#67e8f9;
}

.theme-dark .crm-column {
    background: rgb(15 23 42 / .72);
    border-color: #243044;
}

.theme-dark .crm-card {
    background: #020617;
    border-color: #243044;
    box-shadow: 0 14px 32px rgb(0 0 0 / .25);
}

.theme-dark .crm-column-head h2,
.theme-dark .crm-card h3 {
    color: #f8fafc;
}

.theme-dark .crm-column-head p,
.theme-dark .crm-card p,
.theme-dark .crm-meta,
.theme-dark .crm-card-top,
.theme-dark .crm-card-form label,
.theme-dark .crm-empty {
    color: #94a3b8;
}

.theme-dark .crm-column-head span {
    background: rgb(103 232 249 / .18);
    color: #f8fafc;
}

.theme-dark .crm-priority {
    color: #bae6fd;
}

.theme-dark .crm-priority-high,
.theme-dark .crm-priority-urgent {
    background: #dc2626;
    color: #fff;
}

.theme-dark .crm-priority-normal {
    background: #075985;
    color: #e0f2fe;
}

.theme-dark .crm-priority-low {
    background: #166534;
    color: #dcfce7;
}

.theme-dark .crm-card-footer {
    border-top-color: #243044;
}

.theme-dark .crm-card-manage-btn {
    background: linear-gradient(180deg, #22d3ee 0%, #0891b2 100%);
    color: #0f172a;
    box-shadow: 0 6px 18px rgb(34 211 238 / .22);
}

.theme-dark .crm-card-manage-btn:hover {
    background: linear-gradient(180deg, #67e8f9 0%, #22d3ee 100%);
}

.theme-dark .crm-card-preview,
.theme-dark .crm-card-owner {
    color: #94a3b8;
}

.theme-dark .crm-hr-details {
    border-color: rgb(251 191 36 / 0.28);
    background: rgb(251 191 36 / 0.08);
    color: #e2e8f0;
}

.theme-dark .crm-hr-details strong {
    color: #fcd34d;
}

.theme-dark .crm-hero-admin .eyebrow {
    color: #fcd34d;
}

html.theme-light .crm-hero-admin {
    border-color: #fcd34d;
    background: linear-gradient(135deg, #fffbeb, #f8fafc);
}

html.theme-light .crm-hero-admin .eyebrow {
    color: #b45309;
}

html.theme-light .crm-hero-admin h2,
html.theme-light .crm-hero-admin p {
    color: #0f172a;
}

html.theme-light .crm-card-hr {
    border-color: #fbbf24;
}

html.theme-light .crm-hr-details {
    border-color: #f59e0b;
    background: #fffbeb;
    color: #1e293b;
}

html.theme-light .crm-hr-details strong {
    color: #92400e;
}

html.theme-light .crm-meta {
    color: #475569;
}

html.theme-light .crm-attachment {
    color: #b45309;
}

html.theme-light .crm-attachment-link {
    color: #b45309;
}

html.theme-light .crm-attachment-link:hover {
    color: #92400e;
}

html.theme-light .crm-archive-item {
    background: #fff;
    border-color: #dbe4f0;
}

html.theme-light .crm-archive-toggle-link {
    color: #0369a1;
}

html.theme-light .request-table-row:hover,
html.theme-light .request-table-row:focus {
    background: rgb(14 165 233 / 0.1);
}

html.theme-light .request-table-subject {
    color: #0f172a;
}

html.theme-light .request-detail-panel {
    background: #ffffff;
    border-color: #dbe4f0;
}

html.theme-light .request-detail-header h2,
html.theme-light .request-detail-meta-grid dd,
html.theme-light .request-detail-section-title {
    color: #0f172a;
}

.theme-dark .request-detail-panel {
    background: #0f172a;
    border-color: #334155;
}

.theme-dark .request-detail-header h2,
.theme-dark .request-detail-sub,
.theme-dark .request-detail-message,
.theme-dark .request-detail-section p,
.theme-dark .request-detail-meta-grid dd {
    color: #e2e8f0;
}

.theme-dark .request-detail-meta-grid {
    background: rgb(2 6 23 / 0.6);
    border-color: #334155;
}

.theme-dark .request-detail-meta-grid dt {
    color: #94a3b8;
}

.theme-dark .request-detail-close {
    background: #1e293b;
    border-color: #334155;
    color: #e2e8f0;
}

.theme-dark .request-table-row:hover,
.theme-dark .request-table-row:focus {
    background: rgb(103 232 249 / 0.1);
}

.theme-dark .request-table-subject {
    color: #f1f5f9;
}

.theme-dark .crm-resolved-fold {
    background: rgb(15 23 42 / .72);
    border-color: #243044;
}

.theme-dark .crm-resolved-fold-title {
    color: #e2e8f0;
}

.theme-dark .crm-resolved-fold-count {
    background: rgb(34 197 94 / .22);
    color: #86efac;
}

.theme-dark .crm-resolved-fold-hint,
.theme-dark .crm-resolved-fold-empty {
    color: #94a3b8;
}

.theme-dark .crm-resolved-fold-body,
.theme-dark .crm-resolved-archive {
    border-color: #334155;
}

.theme-dark .crm-resolved-fold-summary::after {
    color: #94a3b8;
}

.theme-dark .crm-resolved-archive summary {
    color: #94a3b8;
}

.theme-dark .crm-archive-item {
    background: rgb(2 6 23 / 0.55);
    border-color: #334155;
}

.theme-dark .crm-archive-item-top strong {
    color: #f1f5f9;
}

.theme-dark .crm-archive-item-meta,
.theme-dark .crm-archive-item-top span,
.theme-dark .crm-archive-item-note {
    color: #94a3b8;
}

.theme-dark .crm-archive-count {
    background: #334155;
    color: #e2e8f0;
}

.theme-dark .role-permissions span {
    background: rgb(103 232 249 / .14);
    color: #bae6fd;
}

.theme-dark .permission-picker {
    background: rgb(2 6 23 / .5);
    border-color: #243044;
}

.theme-dark .permission-item {
    background: #020617;
    border-color: #243044;
}

.theme-dark .permission-item span {
    color: #f8fafc;
}

.theme-dark .permission-item:has(input:checked) {
    background: rgb(103 232 249 / .12);
    border-color: rgb(103 232 249 / .38);
}

.theme-dark .room-picker {
    background: rgb(2 6 23 / .5);
    border-color: #243044;
}

.theme-dark .room-picker-head {
    border-color: #243044;
}

.theme-dark .room-picker-item {
    background: #020617;
    border-color: #243044;
}

.theme-dark .room-picker-item strong {
    color: #f8fafc;
}

.theme-dark .room-picker-item small,
.theme-dark .room-picker-head span {
    color: #94a3b8;
}

@media (max-width: 1023px) {
    .notification-panel,
    body.sidebar-collapsed .notification-panel {
        left: .75rem;
        right: .75rem;
        top: 4.5rem;
        width: auto;
        max-height: min(28rem, calc(100vh - 5.5rem));
    }

    .min-h-screen.lg\:flex {
        display: block;
    }

    /* Drawer: su mobile "sidebar-collapsed" = menu aperto (desktop invariato ≥1024px) */
    .sidebar {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        width: min(21rem, 88vw) !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: 1rem 0.85rem !important;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 80;
        transform: translateX(-105%);
        transition: transform 0.22s ease, box-shadow 0.22s ease;
        box-shadow: none;
        overscroll-behavior: contain;
    }

    body.sidebar-collapsed .sidebar {
        transform: translateX(0);
        box-shadow: 12px 0 40px rgb(0 0 0 / 0.45);
    }

    body.sidebar-collapsed {
        overflow: hidden;
    }

    body.sidebar-collapsed .sidebar-brand,
    body.sidebar-collapsed .sidebar-label,
    body.sidebar-collapsed .sidebar-nav-section-label {
        opacity: 1;
        width: auto;
        height: auto;
        pointer-events: auto;
        transform: none;
        display: block;
    }

    body.sidebar-collapsed .sidebar-nav-section {
        margin-top: 1.1rem;
    }

    body.sidebar-collapsed .sidebar-nav-section:first-of-type {
        margin-top: 0.4rem;
    }

    body.sidebar-collapsed .sidebar-nav-section-items {
        padding: 0 0.35rem;
    }

    body.sidebar-collapsed .sidebar-icon,
    .sidebar-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    body.sidebar-collapsed .sidebar-link {
        justify-content: flex-start;
        width: 100%;
        padding: 0.55rem 0.85rem;
    }

    .sidebar-header {
        margin-bottom: 1rem;
    }
}

.booking-portal-open-btn {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.booking-portal-home {
    position: relative;
    z-index: 1;
}

.booking-portal-shell {
    display: grid;
    gap: 1rem;
}

.booking-portal-hero {
    align-items: center;
}

.booking-portal-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.booking-open-external {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .85rem;
    padding: .7rem 1rem;
    font-size: .85rem;
    font-weight: 700;
    background: #7c3aed;
    color: #fff;
}

.booking-portal-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.booking-portal-tabs {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.booking-tab {
    border-radius: .75rem;
    border: 1px solid #334155;
    padding: .55rem .9rem;
    font-size: .85rem;
    font-weight: 700;
    color: #cbd5e1;
}

.booking-tab.is-active {
    border-color: #7c3aed;
    background: rgb(124 58 237 / .15);
    color: #ddd6fe;
}

.booking-portal-sede-form {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .85rem;
}

.booking-portal-sede-form select {
    border-radius: .65rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: .45rem .65rem;
}

.booking-portal-quick {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.booking-quick-link {
    border-radius: 999px;
    border: 1px solid #334155;
    padding: .35rem .7rem;
    font-size: .75rem;
    color: #cbd5e1;
}

.booking-portal-note code {
    color: #fbbf24;
}

.booking-portal-frame-wrap {
    min-height: 70vh;
}

.booking-portal-frame {
    width: 100%;
    min-height: 68vh;
    border: 0;
    border-radius: 1rem;
    background: #020617;
}

.theme-light .booking-portal-toolbar,
.theme-light .booking-portal-frame-wrap,
.theme-light .booking-portal-grid > div {
    background: #fff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .booking-portal-frame-wrap {
    background: #f8fafc !important;
}

html.theme-light .booking-portal-note {
    background: #e0f2fe !important;
    border-color: #7dd3fc !important;
    color: #0c4a6e !important;
}

html.theme-light .booking-portal-note strong,
html.theme-light .booking-portal-note code {
    color: #0c4a6e !important;
}

.theme-light .booking-tab {
    border-color: #cbd5e1;
    color: #334155;
}

.theme-light .booking-tab.is-active {
    background: rgb(124 58 237 / .12);
    color: #5b21b6;
}

.theme-light .booking-portal-sede-form select {
    background: #fff;
    color: #0f172a;
}

.vrc-pocket-shell {
    display: grid;
    gap: 1rem;
}

.vrc-pocket-metrics strong {
    color: #f8fafc;
}

.pocket-status {
    display: inline-block;
    border-radius: 999px;
    padding: .2rem .55rem;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.pocket-status-confermato {
    background: rgb(16 185 129 / .15);
    color: #6ee7b7;
}

.pocket-status-in_attesa {
    background: rgb(56 189 248 / .18);
    color: #7dd3fc;
    border: 1px solid rgb(56 189 248 / .35);
}

.pocket-status-richiesta_hq {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.35);
}

.pocket-review-panel {
    max-width: 16rem;
}

.pocket-btn-accept {
    background: rgb(16 185 129 / .2);
    color: #6ee7b7;
    border: 1px solid rgb(16 185 129 / .4);
}

.pocket-btn-reject {
    background: rgb(248 113 113 / .15);
    color: #fca5a5;
    border: 1px solid rgb(248 113 113 / .35);
}

.pocket-btn-notify {
    background: rgb(6 182 212 / .15);
    color: #a5f3fc;
    border: 1px solid rgb(6 182 212 / .35);
}

.pocket-status-fuori_raggio {
    background: rgb(245 158 11 / .15);
    color: #fcd34d;
}

.pocket-status-programmato {
    background: rgb(56 189 248 / .15);
    color: #7dd3fc;
}

.pocket-status-completato {
    background: rgb(16 185 129 / .2);
    color: #34d399;
}

.pocket-status-annullato {
    background: rgb(248 113 113 / .15);
    color: #fca5a5;
}

.pocket-distance-row {
    display: flex;
    align-items: stretch;
    gap: .5rem;
}

.pocket-distance-row input[name="distance_km"] {
    flex: 1;
    min-width: 0;
}

.pocket-calc-distance-btn {
    flex-shrink: 0;
    white-space: nowrap;
    border-radius: .5rem;
    border: 1px solid rgb(6 182 212 / .45);
    background: rgb(6 182 212 / .12);
    padding: .5rem .85rem;
    font-size: .8125rem;
    font-weight: 600;
    color: #a5f3fc;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.pocket-calc-distance-btn:hover:not(:disabled) {
    background: rgb(6 182 212 / .22);
    border-color: rgb(6 182 212 / .65);
}

.pocket-calc-distance-btn:disabled {
    opacity: .55;
    cursor: wait;
}

.pocket-address-input {
    width: 100%;
}

.pac-container {
    z-index: 10050 !important;
    border-radius: .5rem;
    border: 1px solid rgb(51 65 85);
    background: rgb(15 23 42);
    box-shadow: 0 12px 32px rgb(0 0 0 / .45);
    font-family: inherit;
}

.pac-item {
    padding: .5rem .75rem;
    color: #e2e8f0;
    cursor: pointer;
    border-top: 1px solid rgb(30 41 59);
}

.pac-item:hover,
.pac-item-selected {
    background: rgb(6 182 212 / .15);
}

.pac-item-query {
    color: #f8fafc;
}

.pac-matched {
    color: #22d3ee;
}

.pocket-address-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 2px);
    z-index: 10060;
    max-height: 14rem;
    overflow-y: auto;
    border-radius: .5rem;
    border: 1px solid rgb(51 65 85);
    background: rgb(15 23 42);
    box-shadow: 0 12px 32px rgb(0 0 0 / .45);
}

.pocket-address-suggestions.hidden {
    display: none;
}

.pocket-address-suggestion {
    display: block;
    width: 100%;
    text-align: left;
    padding: .55rem .75rem;
    font-size: .8125rem;
    color: #e2e8f0;
    background: transparent;
    border: none;
    border-top: 1px solid rgb(30 41 59);
    cursor: pointer;
}

.pocket-address-suggestion:hover {
    background: rgb(6 182 212 / .15);
    color: #a5f3fc;
}

.pocket-edit-panel textarea,
.pocket-edit-panel input,
.pocket-edit-panel select {
    width: 100%;
}

.pocket-delete-form {
    margin-left: .25rem;
}

.pocket-assign-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.pocket-assign-inline select {
    min-width: 10rem;
    max-width: 14rem;
    font-size: .75rem;
}

.pocket-assign-field select {
    width: 100%;
}

.pocket-info-card {
    position: relative;
}

.pocket-info-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.pocket-info-card-link:hover {
    border-color: rgb(34 211 238 / .45) !important;
    box-shadow: 0 14px 32px rgb(15 23 42 / .12);
    transform: translateY(-2px);
}

html.theme-light .pocket-info-card-link:hover {
    box-shadow: 0 14px 28px rgb(15 23 42 / .08);
}

.important-docs-section-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid #334155;
    background: linear-gradient(180deg, rgb(15 23 42 / 0.92), rgb(2 6 23 / 0.75));
}

.important-doc-section-label {
    font-size: 0.78rem;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.important-doc-section-select {
    min-width: min(320px, 100%);
    border: 1px solid #334155;
    border-radius: 0.75rem;
    padding: 0.55rem 0.85rem;
    background: #020617;
    color: #f1f5f9;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
}

.important-docs-shell {
    display: grid;
    gap: 1.5rem;
}

.important-doc-sign-btn,
.important-doc-signed-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.55rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.important-doc-sign-btn {
    border: 1px solid rgb(139 92 246 / 0.45);
    background: rgb(139 92 246 / 0.16);
    color: #6d28d9;
}

.important-doc-signed-link {
    border: 1px solid rgb(52 211 153 / 0.35);
    background: rgb(52 211 153 / 0.12);
    color: #047857;
}

.important-doc-pill-audience {
    background: rgba(56, 189, 248, 0.15);
    color: #7dd3fc;
    border: 1px solid rgba(56, 189, 248, 0.35);
}

.important-doc-audience-extra[hidden] {
    display: none !important;
}

.important-doc-lock-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(167, 139, 250, 0.35);
    background: rgba(139, 92, 246, 0.08);
}

.important-doc-vault-panel label {
    display: block;
}

.important-doc-pill-signed {
    background: rgb(52 211 153 / 0.16);
    color: #047857;
}

.important-doc-card.is-signed {
    border-color: rgb(52 211 153 / 0.35);
}

.doc-signature-dialog {
    width: min(520px, calc(100vw - 2rem));
    padding: 0;
    border: none;
    border-radius: 1.1rem;
    background: transparent;
}

.doc-signature-dialog::backdrop {
    background: rgb(15 23 42 / 0.55);
    backdrop-filter: blur(3px);
}

.doc-signature-panel {
    position: relative;
    padding: 1.15rem 1.2rem 1.2rem;
    border-radius: 1.1rem;
    border: 1px solid #dbe4f0;
    background: #fff;
    box-shadow: 0 24px 60px rgb(15 23 42 / 0.22);
}

.doc-signature-close {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    border: none;
    background: transparent;
    color: #94a3b8;
    font-size: 1.35rem;
    cursor: pointer;
}

.doc-signature-heading {
    margin: 0;
    font-size: 1.15rem;
    color: #0f172a;
}

.doc-signature-sub,
.doc-signature-hint {
    margin: 0.35rem 0 0;
    color: #64748b;
    font-size: 0.84rem;
}

.doc-signature-canvas-wrap {
    margin-top: 0.85rem;
    height: 180px;
    border: 2px dashed #cbd5e1;
    border-radius: 0.85rem;
    background: #f8fafc;
    touch-action: none;
}

#doc-signature-canvas {
    display: block;
    width: 100%;
    height: 100%;
    cursor: crosshair;
}

.doc-signature-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.85rem;
}

.doc-signature-clear-btn,
.doc-signature-save-btn {
    border: none;
    border-radius: 0.65rem;
    padding: 0.55rem 0.9rem;
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
}

.doc-signature-clear-btn {
    background: #e2e8f0;
    color: #334155;
}

.doc-signature-save-btn {
    background: #8b5cf6;
    color: #fff;
}

.doc-signed-view-shell {
    display: grid;
    gap: 1rem;
}

.doc-signed-view-head h1 {
    margin: 0.35rem 0 0;
    font-size: 1.35rem;
    color: #0f172a;
}

.doc-signed-back {
    color: #0891b2;
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none;
}

.doc-signed-meta {
    margin: 0.35rem 0 0;
    color: #64748b;
    font-size: 0.85rem;
}

.doc-signed-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr minmax(220px, 280px);
    min-height: 70vh;
}

.doc-signed-pdf {
    width: 100%;
    min-height: 70vh;
    border: 1px solid #dbe4f0;
    border-radius: 0.85rem;
    background: #fff;
}

.doc-signed-signature-box {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
    border: 1px solid #dbe4f0;
    border-radius: 0.85rem;
    background: #f8fafc;
}

.doc-signed-signature-label {
    font-size: 0.72rem;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
}

.doc-signed-signature-img {
    width: 100%;
    max-height: 140px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
}

.theme-dark .important-docs-section-bar,
.theme-dark .doc-signature-panel,
.theme-dark .doc-signed-signature-box {
    background: #0f172a;
    border-color: #243044;
}

.theme-dark .important-doc-section-select {
    background: #111827;
    border-color: #334155;
    color: #f8fafc;
}

.theme-dark .doc-signature-heading,
.theme-dark .doc-signed-view-head h1 {
    color: #f8fafc;
}

@media (max-width: 900px) {
    .doc-signed-layout {
        grid-template-columns: 1fr;
    }

    .doc-signed-pdf {
        min-height: 50vh;
    }
}

.important-doc-upload-grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.important-doc-upload-grid label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #94a3b8;
}

.important-doc-upload-notes {
    grid-column: 1 / -1;
}

.important-doc-category-title {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #e2e8f0;
}

.important-doc-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.important-doc-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid #334155;
    background: linear-gradient(180deg, rgb(15 23 42 / 0.9), rgb(2 6 23 / 0.85));
}

.important-doc-card.is-pinned {
    border-color: rgb(34 211 238 / 0.45);
    box-shadow: 0 12px 28px rgb(14 165 233 / 0.12);
}

.important-doc-card-head {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.important-doc-icon {
    font-size: 1.65rem;
    line-height: 1;
}

.important-doc-card h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #f8fafc;
    line-height: 1.35;
}

.important-doc-pill {
    display: inline-block;
    margin-top: 0.25rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgb(34 211 238 / 0.15);
    color: #67e8f9;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.important-doc-desc {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
    color: #cbd5e1;
}

.important-doc-meta {
    margin: 0;
    font-size: 0.75rem;
    color: #94a3b8;
}

.important-doc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.35rem;
}

.important-doc-delete-form {
    display: inline;
}

.important-doc-empty {
    text-align: center;
}

html.theme-light .important-doc-category-title {
    color: #0f172a;
}

html.theme-light .important-doc-card {
    background: #fff;
    border-color: #dbe4f0;
}

html.theme-light .important-doc-card h3 {
    color: #0f172a;
}

html.theme-light .important-doc-desc {
    color: #475569;
}

html.theme-light .important-doc-meta {
    color: #64748b;
}

html.theme-light .important-doc-upload-grid label {
    color: #64748b;
}

.pocket-pdf-btn {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(148 163 184 / .35);
    background: rgb(15 23 42 / .6);
    color: #94a3b8;
    cursor: pointer;
    transition: color .15s, border-color .15s, background .15s;
}

.pocket-pdf-btn:hover {
    color: #22d3ee;
    border-color: rgb(34 211 238 / .5);
    background: rgb(34 211 238 / .1);
}

.theme-light .pocket-pdf-btn {
    background: #fff;
    color: #64748b;
    border-color: #cbd5e1;
}

.theme-light .pocket-pdf-btn:hover {
    color: #0891b2;
    border-color: #22d3ee;
    background: #ecfeff;
}

.vrc-pocket-home a {
    white-space: nowrap;
}

.theme-light .vrc-pocket-metrics strong {
    color: #0f172a;
}

.operator-cal-shell {
    display: grid;
    gap: 1.25rem;
}

.operator-cal-hero {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.operator-cal-hero-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.operator-cal-stats strong {
    display: block;
    margin-top: .35rem;
    color: #f8fafc;
}

.operator-cal-toolbar {
    padding: 1rem 1.15rem;
}

#operator-cal.operator-cal-toolbar {
    scroll-margin-top: 1.25rem;
}

.operator-cal-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
    align-items: center;
    justify-content: space-between;
}

.operator-cal-view-tabs {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

.operator-cal-period-nav {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 1 1 16rem;
    justify-content: center;
    min-width: min(100%, 20rem);
}

.operator-cal-nav-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .65rem;
    border: 1px solid #334155;
    font-size: 1.35rem;
    line-height: 1;
    font-weight: 600;
    color: #cbd5e1;
    text-decoration: none;
    flex-shrink: 0;
}

.operator-cal-nav-arrow:hover {
    border-color: #22d3ee;
    color: #a5f3fc;
    background: rgb(34 211 238 / .08);
}

.operator-cal-date-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    max-width: 18rem;
    padding: .35rem .85rem;
    border-radius: .75rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / .55);
    cursor: pointer;
    text-align: center;
}

.operator-cal-date-wrap:hover {
    border-color: #22d3ee;
    background: rgb(34 211 238 / .06);
}

.operator-cal-period-text {
    font-size: .92rem;
    font-weight: 700;
    color: #f1f5f9;
    line-height: 1.25;
    pointer-events: none;
}

.operator-cal-date-hint {
    font-size: .68rem;
    color: #64748b;
    margin-top: .15rem;
    pointer-events: none;
}

.operator-cal-date-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    border: 0;
    background: transparent;
}

.operator-cal-today-link {
    font-size: .78rem;
    font-weight: 700;
    color: #22d3ee;
    text-decoration: none;
    padding: .35rem .55rem;
    border-radius: .5rem;
    white-space: nowrap;
}

.operator-cal-today-link:hover {
    background: rgb(34 211 238 / .12);
}

.operator-cal-sede-form {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .85rem;
    margin-left: auto;
}

.operator-cal-tab,
.operator-cal-nav-btn {
    border-radius: .75rem;
    border: 1px solid #334155;
    padding: .5rem .85rem;
    font-size: .85rem;
    font-weight: 700;
    color: #cbd5e1;
    text-decoration: none;
}

.operator-cal-tab.is-active,
.operator-cal-nav-today {
    border-color: #22d3ee;
    background: rgb(34 211 238 / .12);
    color: #a5f3fc;
}

.operator-cal-filter-form {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .85rem;
}

.operator-cal-filter-form select,
.operator-cal-sede-form select {
    border-radius: .65rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: .45rem .65rem;
}

@media (max-width: 720px) {
    .operator-cal-toolbar-row {
        flex-direction: column;
        align-items: stretch;
    }

    .operator-cal-period-nav {
        width: 100%;
        min-width: 0;
    }

    .operator-cal-sede-form {
        margin-left: 0;
        width: 100%;
        justify-content: space-between;
    }
}

.operator-cal-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .75rem;
}

.operator-cal-month-wrap {
    padding: 0.65rem;
    border-radius: 1rem;
    background:
        radial-gradient(ellipse 80% 50% at 10% -10%, rgb(34 211 238 / 0.14), transparent 55%),
        radial-gradient(ellipse 60% 40% at 95% 110%, rgb(167 139 250 / 0.1), transparent 50%),
        linear-gradient(165deg, rgb(15 23 42 / 0.55), rgb(2 6 23 / 0.75));
    border: 1px solid rgb(51 65 85 / 0.45);
}

.operator-cal-month-weekdays,
.operator-cal-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.5rem;
}

.operator-cal-month-weekdays {
    margin-bottom: 0.35rem;
}

.operator-cal-month-wd {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
    text-align: center;
    padding: 0.4rem 0;
}

.operator-cal-month-wd.is-weekend {
    color: #f9a8d4;
}

.operator-cal-month-cell {
    position: relative;
    min-height: 9.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.45rem 0.5rem 0.4rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.5);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.35) 0%, rgb(15 23 42 / 0.55) 100%);
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.15s ease;
}

.operator-cal-month-grid > .operator-cal-month-cell:nth-child(7n+6),
.operator-cal-month-grid > .operator-cal-month-cell:nth-child(7n+7) {
    background: linear-gradient(180deg, rgb(49 46 88 / 0.28) 0%, rgb(15 23 42 / 0.52) 100%);
}

.operator-cal-month-cell.is-outside {
    opacity: 0.42;
    border-style: dashed;
    border-color: rgb(51 65 85 / 0.35);
    background: rgb(15 23 42 / 0.25);
}

.operator-cal-month-cell.is-today {
    border-color: rgb(34 211 238 / 0.65);
    box-shadow:
        0 0 0 1px rgb(34 211 238 / 0.25),
        0 8px 22px rgb(34 211 238 / 0.12);
}

.operator-cal-month-cell.is-today .operator-cal-month-daynum {
    color: #67e8f9;
    background: rgb(34 211 238 / 0.18);
}

.operator-cal-month-cell.is-quickbook.is-empty {
    cursor: pointer;
}

.operator-cal-month-cell.is-quickbook.is-empty:hover,
.operator-cal-month-cell.is-quickbook.is-empty:focus-visible {
    border-color: rgb(34 211 238 / 0.55);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.2), 0 10px 24px rgb(34 211 238 / 0.1);
    outline: none;
}

.operator-cal-month-cell-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    flex-shrink: 0;
}

.operator-cal-month-daynum {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.85rem;
    height: 1.85rem;
    padding: 0 0.35rem;
    border-radius: 0.55rem;
    font-size: 0.95rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #f1f5f9;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}

.operator-cal-month-daynum:hover,
.operator-cal-month-daynum:focus-visible {
    color: #a5f3fc;
    background: rgb(51 65 85 / 0.45);
    outline: none;
}

.operator-cal-month-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #0f172a;
    background: linear-gradient(135deg, #67e8f9, #22d3ee);
    box-shadow: 0 1px 6px rgb(34 211 238 / 0.35);
}

.operator-cal-month-events {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-height: 0;
    overflow: hidden;
}

.operator-cal-month-pill {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
    padding: 0.32rem 0.45rem;
    border: 1px solid var(--cal-border, #334155);
    border-left: 3px solid var(--cal-accent, #22d3ee);
    border-radius: 0.5rem;
    background: linear-gradient(135deg, var(--cal-bg, rgb(2 6 23 / 0.85)), rgb(15 23 42 / 0.65));
    font: inherit;
    color: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.operator-cal-month-pill:hover,
.operator-cal-month-pill:focus-visible {
    transform: translateY(-1px);
    border-color: var(--cal-accent, #22d3ee);
    box-shadow: 0 4px 12px var(--cal-glow, rgb(34 211 238 / 0.2));
    outline: none;
}

.operator-cal-month-pill-dot {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 999px;
    background: var(--cal-accent, #22d3ee);
    flex-shrink: 0;
    box-shadow: 0 0 8px var(--cal-glow, rgb(34 211 238 / 0.4));
}

.operator-cal-month-pill-time {
    flex-shrink: 0;
    font-size: 0.7rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--cal-accent, #67e8f9);
}

.operator-cal-month-pill-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.72rem;
    font-weight: 700;
    color: #e2e8f0;
}

.operator-cal-month-more-link {
    display: inline-block;
    margin-top: 0.1rem;
    font-size: 0.7rem;
    font-weight: 700;
    color: #67e8f9;
    text-decoration: none;
}

.operator-cal-month-more-link:hover {
    color: #a5f3fc;
    text-decoration: underline;
}

.operator-cal-month-cell-foot {
    flex-shrink: 0;
    min-height: 1.75rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.operator-cal-month-cell.is-empty .operator-cal-month-cell-foot {
    flex: 1;
    align-items: center;
    justify-content: center;
}

.operator-cal-month-quickbook {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 0.35rem 0.65rem;
    border-radius: 0.55rem;
    border: 1px dashed rgb(100 116 139 / 0.45);
    background: rgb(15 23 42 / 0.35);
    color: #94a3b8;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.operator-cal-month-cell.is-empty .operator-cal-month-quickbook {
    padding: 0.55rem 0.85rem;
    border-style: dashed;
    border-color: rgb(100 116 139 / 0.35);
    background: transparent;
}

.operator-cal-month-cell.is-quickbook.is-empty:hover .operator-cal-month-quickbook,
.operator-cal-month-cell.is-quickbook.is-empty:focus-visible .operator-cal-month-quickbook {
    border-color: rgb(34 211 238 / 0.45);
    color: #a5f3fc;
    background: rgb(34 211 238 / 0.08);
}

.operator-cal-month-quickbook--add {
    pointer-events: auto;
    cursor: pointer;
    border-style: solid;
    border-color: rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.1);
    color: #a5f3fc;
}

.operator-cal-month-quickbook--add:hover {
    background: rgb(34 211 238 / 0.2);
    border-color: rgb(34 211 238 / 0.55);
}

.operator-cal-month-quickbook-icon {
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1;
}

@media (max-width: 900px) {
    .operator-cal-month-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .operator-cal-month-weekdays,
    .operator-cal-month-grid {
        min-width: 40rem;
    }
}

.operator-cal-day-column {
    border-radius: 1rem;
    border: 1px solid rgb(51 65 85 / .85);
    background: linear-gradient(180deg, rgb(15 23 42 / .88), rgb(2 6 23 / .72));
    min-height: 14rem;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 0 rgb(255 255 255 / .03);
}

.operator-cal-day-column.is-today {
    border-color: #22d3ee;
    box-shadow: 0 0 0 1px rgb(34 211 238 / .25);
}

.operator-cal-day-head {
    padding: .75rem;
    border-bottom: 1px solid #1e293b;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .35rem;
}

a.operator-cal-day-head-link {
    text-decoration: none;
    color: inherit;
    transition: background .15s ease;
}

a.operator-cal-day-head-link:hover,
a.operator-cal-day-head-link:focus-visible {
    background: rgb(34 211 238 / .08);
    outline: none;
}

a.operator-cal-day-head-link:hover .operator-cal-daynum,
a.operator-cal-day-head-link:focus-visible .operator-cal-daynum {
    color: #67e8f9;
}

.operator-cal-day-count {
    font-size: .62rem;
    font-weight: 700;
    color: #0f172a;
    background: #22d3ee;
    border-radius: 999px;
    padding: .1rem .4rem;
    line-height: 1.3;
    flex-shrink: 0;
}

.operator-cal-day-open {
    display: block;
    margin-top: auto;
    padding: .55rem .75rem;
    text-align: center;
    font-size: .72rem;
    font-weight: 700;
    color: #22d3ee;
    text-decoration: none;
    border-top: 1px solid #1e293b;
    transition: background .15s ease;
}

.operator-cal-day-open:hover,
.operator-cal-day-open:focus-visible {
    background: rgb(34 211 238 / .08);
    text-decoration: underline;
    outline: none;
}

.operator-cal-empty-link {
    display: block;
    text-align: center;
    padding: .65rem .5rem;
    color: #64748b;
    text-decoration: none;
    font-size: .75rem;
    border-radius: .65rem;
    border: 1px dashed #334155;
    transition: border-color .15s ease, color .15s ease;
}

.operator-cal-empty-link:hover,
.operator-cal-empty-link:focus-visible {
    border-color: #22d3ee;
    color: #67e8f9;
    outline: none;
}

.operator-cal-weekday {
    font-size: .75rem;
    text-transform: uppercase;
    color: #94a3b8;
}

.operator-cal-daynum {
    font-size: 1.25rem;
    font-weight: 800;
}

.operator-cal-day-events,
.operator-cal-day-list {
    display: grid;
    gap: .65rem;
    padding: .75rem;
}

.operator-cal-event {
    display: grid;
    grid-template-columns: 3.5rem 1fr;
    gap: .65rem;
    border-radius: .85rem;
    border: 1px solid var(--cal-border, #334155);
    border-left: 4px solid var(--cal-accent, #22d3ee);
    background: linear-gradient(135deg, var(--cal-bg, rgb(2 6 23 / .9)), rgb(2 6 23 / .72));
    padding: .65rem;
    color: inherit;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
    box-shadow: 0 1px 0 rgb(255 255 255 / .03);
}

.operator-cal-event:hover,
.operator-cal-event:focus-visible {
    border-color: var(--cal-accent, #22d3ee);
    box-shadow: 0 0 0 1px var(--cal-glow, rgb(34 211 238 / .25));
    transform: translateY(-1px);
    outline: none;
}

.operator-cal-event-time {
    font-size: .8rem;
    font-weight: 700;
    color: var(--cal-accent, #67e8f9);
}

.operator-cal-event-product {
    display: inline-block;
    margin-top: .2rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--cal-accent, #67e8f9);
    opacity: .95;
}

.operator-cal-event-body strong {
    display: block;
}

.operator-cal-event-room {
    font-size: .75rem;
    color: #94a3b8;
}

.operator-cal-event-body p {
    margin: .25rem 0;
    font-size: .8rem;
    color: #cbd5e1;
}

.operator-cal-event-badge {
    font-size: .7rem;
    color: var(--cal-accent-soft, #a5b4fc);
    opacity: .9;
}

.operator-cal-legend {
    display: grid;
    gap: 0.65rem;
    margin-top: 1.25rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.45) 0%, rgb(15 23 42 / 0.3) 100%);
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.06) inset;
}

.operator-cal-legend-title {
    display: block;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #cbd5e1;
}

.operator-cal-legend-items {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.55rem;
}

.operator-cal-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #e2e8f0;
    border-radius: 999px;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: linear-gradient(135deg, rgb(30 41 59 / 0.55), rgb(15 23 42 / 0.4));
    padding: 0.28rem 0.65rem 0.28rem 0.4rem;
}

.operator-cal-legend-swatch {
    width: .62rem;
    height: .62rem;
    border-radius: .18rem;
    background: var(--cal-accent, #22d3ee);
    box-shadow: 0 0 0 1px rgb(255 255 255 / .08);
    flex-shrink: 0;
}

.tone-single_game,
.tone-double_game {
    --cal-accent: #22d3ee;
    --cal-accent-soft: #67e8f9;
    --cal-bg: rgb(34 211 238 / .14);
    --cal-border: rgb(34 211 238 / .38);
    --cal-glow: rgb(34 211 238 / .28);
}

.tone-cultural_experience {
    --cal-accent: #a78bfa;
    --cal-accent-soft: #c4b5fd;
    --cal-bg: rgb(167 139 250 / .16);
    --cal-border: rgb(167 139 250 / .42);
    --cal-glow: rgb(167 139 250 / .28);
}

.tone-private_event {
    --cal-accent: #f472b6;
    --cal-accent-soft: #f9a8d4;
    --cal-bg: rgb(244 114 182 / .14);
    --cal-border: rgb(244 114 182 / .38);
    --cal-glow: rgb(244 114 182 / .26);
}

.tone-birthday {
    --cal-accent: #fbbf24;
    --cal-accent-soft: #fcd34d;
    --cal-bg: rgb(251 191 36 / .16);
    --cal-border: rgb(251 191 36 / .42);
    --cal-glow: rgb(251 191 36 / .24);
}

.tone-extra,
.tone-gift_card,
.tone-other {
    --cal-accent: #34d399;
    --cal-accent-soft: #6ee7b7;
    --cal-bg: rgb(52 211 153 / .12);
    --cal-border: rgb(52 211 153 / .34);
    --cal-glow: rgb(52 211 153 / .22);
}

.tone-partita {
    --cal-accent: #c084fc;
    --cal-accent-soft: #d8b4fe;
    --cal-bg: rgb(192 132 252 / .15);
    --cal-border: rgb(192 132 252 / .4);
    --cal-glow: rgb(192 132 252 / .26);
}

.tone-pocket {
    --cal-accent: #fb923c;
    --cal-accent-soft: #fdba74;
    --cal-bg: rgb(251 146 60 / .15);
    --cal-border: rgb(251 146 60 / .4);
    --cal-glow: rgb(251 146 60 / .24);
}

.operator-cal-event-pocket {
    border-color: rgb(245 158 11 / .35);
}

.operator-cal-empty,
.operator-cal-empty-day {
    font-size: .85rem;
}

.booking-portal-vendite {
    margin-top: .5rem;
}

/* —— Portale economico VMS (layout unificato) —— */
.vms-portal {
    display: grid;
    gap: 1.25rem;
}

.vms-portal-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1.35rem 1.5rem;
    border-radius: 1rem;
    border: 1px solid rgb(124 58 237 / 0.28);
    background: linear-gradient(135deg, rgb(15 23 42 / 0.95) 0%, rgb(30 27 75 / 0.55) 100%);
}

.vms-portal-eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #a78bfa;
}

.vms-portal-title {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    font-weight: 800;
    line-height: 1.15;
    color: #f8fafc;
}

.vms-portal-lead {
    margin: 0.5rem 0 0;
    max-width: 42rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: #94a3b8;
}

.vms-portal-header--cassa {
    padding: 0.9rem 1.15rem;
    align-items: center;
}

.vms-portal-header--cassa .vms-portal-title {
    font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.vms-portal-header--cassa .vms-portal-lead {
    margin-top: 0.25rem;
    font-size: 0.82rem;
}

.vms-portal-header--cassa .vms-portal-kpi {
    min-width: 7.5rem;
    padding: 0.55rem 0.75rem;
}

.vms-portal-header--cassa .vms-portal-kpi strong {
    font-size: 1.15rem;
}

.vms-portal-kpis {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.vms-portal-kpi {
    min-width: 9rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(34 211 238 / 0.25);
    background: rgb(2 6 23 / 0.55);
}

.vms-portal-kpi span {
    display: block;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.vms-portal-kpi strong {
    display: block;
    margin-top: 0.3rem;
    font-size: 1.45rem;
    font-weight: 800;
    color: #67e8f9;
    line-height: 1;
}

.vms-portal-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.vms-portal-nav-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    border: 1px solid #334155;
    background: rgb(15 23 42 / 0.65);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s;
}

.vms-portal-nav-item:hover {
    border-color: rgb(124 58 237 / 0.45);
    background: rgb(30 27 75 / 0.35);
}

.vms-portal-nav-item.is-active {
    border-color: rgb(124 58 237 / 0.65);
    background: rgb(124 58 237 / 0.14);
    box-shadow: inset 0 0 0 1px rgb(124 58 237 / 0.2);
}

.vms-portal-nav-icon {
    font-size: 1rem;
    line-height: 1;
    flex-shrink: 0;
}

.vms-portal-nav-copy {
    min-width: 0;
}

.vms-portal-nav-copy strong {
    font-size: 0.85rem;
    font-weight: 700;
    color: #e2e8f0;
}

.vms-portal-nav-item.is-active .vms-portal-nav-copy strong {
    color: #ddd6fe;
}

.vms-portal-nav-copy small {
    font-size: 0.72rem;
    line-height: 1.35;
    color: #64748b;
}

.vms-portal-workspace {
    display: grid;
    gap: 0.85rem;
}

.vms-portal-workspace-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: rgb(15 23 42 / 0.45);
}

.vms-portal-sede-form {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #94a3b8;
}

.vms-portal-sede-form select {
    border-radius: 0.55rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.4rem 0.65rem;
    font-weight: 600;
}

.vms-portal-fullscreen {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    border-radius: 0.55rem;
    border: 1px solid rgb(124 58 237 / 0.45);
    background: rgb(124 58 237 / 0.12);
    color: #ddd6fe;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
}

.vms-portal-fullscreen:hover {
    background: rgb(124 58 237 / 0.22);
}

.vms-portal-context {
    margin: 0;
    font-size: 0.85rem;
    color: #94a3b8;
}

.vms-portal-lock-banner {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    margin-bottom: 0.85rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(251, 191, 36, 0.42);
    background: linear-gradient(135deg, rgba(251, 191, 36, 0.12), rgba(124, 58, 237, 0.1));
    padding: 0.85rem 1rem;
}

.vms-portal-lock-icon {
    font-size: 1.35rem;
    line-height: 1;
    filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.35));
}

.vms-portal-lock-banner strong {
    display: block;
    color: #fde68a;
    margin-bottom: 0.2rem;
}

.vms-portal-lock-banner p {
    margin: 0;
    font-size: 0.88rem;
    color: #cbd5e1;
    line-height: 1.45;
}

.vms-portal-arenas-card {
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(124 58 237 / 0.35);
    background: rgb(124 58 237 / 0.08);
}

.vms-portal-arenas-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #e9d5ff;
}

.vms-portal-arenas-lead {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    color: #94a3b8;
}

.vms-portal-arenas-lead a {
    color: #c4b5fd;
    text-decoration: underline;
}

.vms-portal-arenas-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.45rem;
}

.vms-portal-arena-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    padding: 0.45rem 0.6rem;
    border-radius: 0.5rem;
    background: rgb(15 23 42 / 0.55);
    border: 1px solid #1e293b;
    font-size: 0.84rem;
}

.vms-portal-arena-row strong {
    color: #f1f5f9;
}

.vms-portal-arena-meta {
    color: #a5b4fc;
    font-size: 0.78rem;
    font-weight: 600;
}

.vms-portal-tech-note {
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(56 189 248 / 0.22);
    background: rgb(56 189 248 / 0.06);
    font-size: 0.82rem;
    color: #94a3b8;
}

.vms-portal-tech-note summary {
    cursor: pointer;
    font-weight: 700;
    color: #7dd3fc;
}

.vms-portal-tech-note p {
    margin: 0.5rem 0 0;
    line-height: 1.45;
}

.vms-portal-tech-note code {
    color: #fbbf24;
    font-size: 0.78rem;
}

.vms-portal-frame-wrap {
    min-height: 70vh;
    padding: 0.35rem;
    border-radius: 1rem;
    border: 1px solid #1e293b;
    background: rgb(2 6 23 / 0.65);
}

.vms-portal-frame {
    width: 100%;
    min-height: 68vh;
    border: 0;
    border-radius: 0.85rem;
    background: #020617;
}

.vms-portal-cassa .sale-studio {
    border-color: rgb(124 58 237 / 0.22);
    background: rgb(15 23 42 / 0.45);
}

.vms-portal-cassa .sale-catalog-details {
    border-color: #1e293b;
    background: rgb(15 23 42 / 0.35);
}

.vms-portal-forbidden {
    padding: 1.25rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(251 191 36 / 0.35);
    background: rgb(251 191 36 / 0.08);
    font-size: 0.9rem;
    color: #fde68a;
}

.vms-portal-forbidden a {
    color: #67e8f9;
}

html.theme-light .vms-portal-header {
    background: linear-gradient(135deg, #ffffff 0%, #f5f3ff 55%, #ede9fe 100%);
    border-color: #c4b5fd;
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.9) inset, 0 8px 24px rgb(124 58 237 / 0.08);
}

html.theme-light .vms-portal-eyebrow {
    color: #6d28d9;
}

html.theme-light .vms-portal-title {
    color: #1e1b4b;
}

html.theme-light .vms-portal-lead {
    color: #475569;
}

html.theme-light .vms-portal-nav-item {
    background: #ffffff;
    border-color: #e2e8f0;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

html.theme-light .vms-portal-nav-item:hover {
    border-color: #c4b5fd;
    background: #faf5ff;
}

html.theme-light .vms-portal-nav-item.is-active {
    background: #ede9fe;
    border-color: #8b5cf6;
    box-shadow: 0 0 0 1px rgb(139 92 246 / 0.15);
}

html.theme-light .vms-portal-nav-copy strong {
    color: #1e1b4b;
}

html.theme-light .vms-portal-nav-item.is-active .vms-portal-nav-copy strong {
    color: #5b21b6;
}

html.theme-light .vms-portal-nav-copy small {
    color: #64748b;
}

html.theme-light .vms-portal-kpi {
    background: #ffffff;
    border-color: #ddd6fe;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

html.theme-light .vms-portal-kpi span {
    color: #64748b;
}

html.theme-light .vms-portal-kpi strong {
    color: #0891b2;
}

html.theme-light .vms-portal-workspace-toolbar,
html.theme-light .vms-portal-frame-wrap {
    background: #ffffff;
    border-color: #e2e8f0;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

html.theme-light .vms-portal-sede-form {
    color: #475569;
}

html.theme-light .vms-portal-sede-form select {
    background: #f8fafc;
    color: #0f172a;
    border-color: #cbd5e1;
}

html.theme-light .vms-portal-fullscreen {
    background: #ede9fe;
    border-color: #c4b5fd;
    color: #5b21b6;
}

html.theme-light .vms-portal-fullscreen:hover {
    background: #ddd6fe;
}

html.theme-light .vms-portal-context {
    color: #64748b;
}

html.theme-light .vms-portal-tech-note {
    background: #f0f9ff;
    border-color: #bae6fd;
    color: #475569;
}

html.theme-light .vms-portal-tech-note summary {
    color: #0369a1;
}

html.theme-light .vms-portal-tech-note code {
    color: #b45309;
    background: #fffbeb;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
}

html.theme-light .vms-portal-forbidden {
    background: #fffbeb;
    border-color: #fcd34d;
    color: #92400e;
}

html.theme-light .vms-portal-forbidden a {
    color: #0369a1;
}

@media (max-width: 720px) {
    .vms-portal-header {
        padding: 1rem;
    }

    .vms-portal-kpis {
        width: 100%;
    }

    .vms-portal-kpi {
        flex: 1 1 calc(50% - 0.35rem);
    }
}

@media (max-width: 1100px) {
    .operator-cal-week-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .operator-cal-week-grid {
        grid-template-columns: 1fr;
    }
}

.operator-home-recap {
    margin-bottom: 1rem;
}

.operator-recap-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.operator-recap-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.operator-recap-link {
    border-radius: 0.65rem;
    border: 1px solid #334155;
    padding: 0.45rem 0.85rem;
    font-size: 0.8rem;
    color: #cbd5e1;
}

.operator-partita-btn {
    border-radius: 0.65rem;
    background: #7c3aed;
    color: #fff;
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
    font-weight: 700;
    border: none;
    cursor: pointer;
}

.operator-recap-list,
.operator-recap-upcoming {
    display: grid;
    gap: 0.5rem;
}

.operator-recap-upcoming {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #1e293b;
}

.operator-recap-upcoming-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 0.5rem;
}

.operator-recap-item {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid #334155;
    background: #020617;
    padding: 0.65rem 0.85rem;
    color: inherit;
}

.operator-recap-item:hover {
    border-color: #22d3ee;
}

.operator-recap-item-partita {
    border-color: rgb(124 58 237 / 0.35);
}

.operator-recap-time {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    color: #67e8f9;
    font-size: 0.85rem;
}

.operator-recap-day {
    font-size: 0.7rem;
    font-weight: 500;
    color: #94a3b8;
}

.operator-recap-body strong {
    display: block;
}

.operator-recap-body span {
    display: block;
    font-size: 0.8rem;
    color: #cbd5e1;
    margin-top: 0.15rem;
}

.operator-recap-body em {
    display: block;
    font-size: 0.72rem;
    font-style: normal;
    color: #a5b4fc;
    margin-top: 0.25rem;
}

.operator-recap-empty {
    font-size: 0.9rem;
    color: #94a3b8;
    padding: 0.5rem 0;
}

.operator-recap-flash {
    margin-bottom: 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(16 185 129 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
    padding: 0.6rem 0.85rem;
    font-size: 0.85rem;
}

.operator-partita-panel {
    display: none;
    margin-bottom: 1rem;
}

.operator-partita-panel.is-open {
    display: block;
}

.operator-partita-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.operator-partita-close {
    border: none;
    background: transparent;
    color: #94a3b8;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

/* —— Home timbratura (operatore / responsabile sala) —— */
.home-timbratura-hero {
    position: relative;
    margin-top: 0.5rem;
    padding: 1.75rem 1.5rem 1.65rem;
    border-radius: 1.25rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.14) 0%, rgb(15 23 42 / 0.92) 48%, rgb(15 23 42 / 0.98) 100%);
    overflow: hidden;
    box-shadow: 0 18px 48px rgb(2 6 23 / 0.45);
}

.home-timbratura-hero--warn {
    border-color: rgb(251 191 36 / 0.45);
    background: linear-gradient(135deg, rgb(251 191 36 / 0.12) 0%, rgb(15 23 42 / 0.94) 55%);
}

.home-timbratura-hero-bg {
    position: absolute;
    inset: -40% -20% auto auto;
    width: 22rem;
    height: 22rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgb(34 211 238 / 0.22), transparent 68%);
    pointer-events: none;
}

.home-timbratura-hero--warn .home-timbratura-hero-bg {
    background: radial-gradient(circle, rgb(251 191 36 / 0.2), transparent 68%);
}

.home-timbratura-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.9fr);
    gap: 1.5rem 2rem;
    align-items: center;
}

.home-timbratura-hero-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.home-timbratura-kicker {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #67e8f9;
}

.home-timbratura-hero--warn .home-timbratura-kicker {
    color: #fcd34d;
}

.home-timbratura-hero-copy h2 {
    margin: 0.35rem 0 0.5rem;
    font-size: clamp(1.55rem, 2.5vw, 2rem);
    font-weight: 800;
    line-height: 1.15;
    color: #f8fafc;
}

.home-timbratura-lead {
    margin: 0;
    max-width: 38rem;
    font-size: 0.92rem;
    line-height: 1.5;
    color: #cbd5e1;
}

.home-timbratura-unlock-list {
    margin: 0.85rem 0 0;
    padding-left: 1.1rem;
    color: #94a3b8;
    font-size: 0.86rem;
    line-height: 1.55;
}

.home-timbratura-menu-hint {
    margin: 0.9rem 0 0;
    padding: 0.65rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(2 6 23 / 0.35);
    font-size: 0.8rem;
    line-height: 1.45;
    color: #94a3b8;
}

.home-timbratura-menu-hint strong {
    color: #e2e8f0;
}

.home-timbratura-punch {
    padding: 1rem 1.05rem;
    border-radius: 1rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(2 6 23 / 0.55);
}

.home-timbratura-live-clock {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.55);
}

.home-timbratura-live-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.home-timbratura-live-clock strong {
    font-size: 1.75rem;
    font-weight: 800;
    color: #67e8f9;
    font-variant-numeric: tabular-nums;
}

.home-timbratura-field {
    display: block;
    margin-bottom: 0.75rem;
}

.home-timbratura-field span {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #94a3b8;
}

.home-timbratura-field select {
    width: 100%;
    border-radius: 0.65rem;
    border: 1px solid #334155;
    background: #0f172a;
    color: #f1f5f9;
    padding: 0.55rem 0.65rem;
}

.home-timbratura-btn-in {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    border: none;
    border-radius: 999px;
    padding: 0.85rem 1.15rem;
    font-size: 0.95rem;
    font-weight: 800;
    cursor: pointer;
    background: linear-gradient(180deg, #34d399, #10b981);
    color: #052e16;
    box-shadow: 0 10px 28px rgb(16 185 129 / 0.35);
}

.home-timbratura-btn-in:hover {
    filter: brightness(1.05);
}

.home-timbratura-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
    align-items: center;
}

.home-timbratura-btn-link {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.55rem 1rem;
    font-size: 0.85rem;
    font-weight: 800;
    background: #22d3ee;
    color: #0f172a;
    text-decoration: none;
}

.home-timbratura-active {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 1.25rem;
    padding: 0;
    border-radius: 1rem;
    border: 1px solid rgb(52 211 153 / 0.4);
    background: linear-gradient(90deg, rgb(16 185 129 / 0.12), rgb(15 23 42 / 0.65));
    overflow: hidden;
}

.home-timbratura-active-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0.85rem 1rem;
}

.shift-team-gate {
    margin: 0 0 0.85rem;
    padding: 0.85rem;
    border-radius: 12px;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(15 23 42 / 0.45);
}

.shift-team-gate-live {
    margin-bottom: 0.75rem;
}

.shift-team-gate-note {
    margin: 0.5rem 0 0;
    font-size: 0.78rem;
    line-height: 1.4;
    color: #94a3b8;
}

.shift-team-gate-note--solo {
    margin: 0 0 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: rgb(34 211 238 / 0.08);
    border: 1px solid rgb(34 211 238 / 0.2);
    color: #a5f3fc;
}

.shift-team-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.shift-team-steps li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    font-size: 0.76rem;
    line-height: 1.35;
    color: #94a3b8;
}

.shift-team-step-num {
    flex-shrink: 0;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    background: #34d39922;
    color: #6ee7b7;
    border: 1px solid #34d39944;
}

.shift-team-panel {
    width: 100%;
    padding: 1rem 1.05rem;
}

.shift-team-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.shift-team-kicker {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6ee7b7;
    margin-bottom: 0.25rem;
}

.shift-team-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #ecfdf5;
}

.shift-team-lead {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #94a3b8;
    max-width: 36rem;
}

.shift-team-count {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: #34d39920;
    border: 1px solid #34d39955;
    color: #a7f3d0;
}

.shift-team-members {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.shift-team-members--active {
    margin-bottom: 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgb(52 211 153 / 0.22);
}

.shift-team-member {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.55);
}

.shift-team-member.is-you {
    border-color: #34d39966;
    background: #34d39912;
}

.shift-team-avatar {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    background: #0e7490;
    color: #cffafe;
}

.shift-team-member.is-you .shift-team-avatar {
    background: #059669;
    color: #ecfdf5;
}

.shift-team-member-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.shift-team-member-body strong {
    font-size: 0.88rem;
    color: #f1f5f9;
}

.shift-team-member-body span {
    font-size: 0.76rem;
    color: #94a3b8;
    font-variant-numeric: tabular-nums;
}

.shift-punch-out-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.35rem;
    padding: 0.7rem 1.2rem 0.7rem 0.85rem;
    border: 1px solid rgb(255 255 255 / 0.14);
    border-radius: 1rem;
    background:
        radial-gradient(circle at 18% 20%, rgb(255 255 255 / 0.16), transparent 42%),
        linear-gradient(135deg, #fb7185 0%, #e11d48 48%, #9f1239 100%);
    color: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    box-shadow:
        0 14px 34px rgb(190 18 60 / 0.38),
        0 0 0 1px rgb(251 113 133 / 0.35) inset;
    transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
    overflow: hidden;
    flex-shrink: 0;
}

.shift-punch-out-btn-glow {
    position: absolute;
    inset: auto -20% -55% auto;
    width: 7rem;
    height: 7rem;
    border-radius: 50%;
    background: rgb(255 255 255 / 0.12);
    pointer-events: none;
}

.shift-punch-out-btn-badge {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    border-radius: 0.8rem;
    background: rgb(15 23 42 / 0.22);
    border: 1px solid rgb(255 255 255 / 0.22);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
}

.shift-punch-out-btn-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}

.shift-punch-out-btn-title {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.shift-punch-out-btn-sub {
    font-size: 0.72rem;
    font-weight: 600;
    color: rgb(255 255 255 / 0.82);
    line-height: 1.25;
}

.shift-punch-out-btn:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow:
        0 18px 40px rgb(190 18 60 / 0.45),
        0 0 0 1px rgb(255 255 255 / 0.2) inset;
}

.shift-punch-out-btn:active {
    transform: translateY(0);
    filter: brightness(0.98);
}

.shift-punch-out-btn--compact {
    min-height: 2.85rem;
    padding: 0.55rem 0.95rem 0.55rem 0.7rem;
    gap: 0.6rem;
}

.shift-punch-out-btn--compact .shift-punch-out-btn-badge {
    width: 2.05rem;
    height: 2.05rem;
    font-size: 0.66rem;
}

.shift-punch-out-btn--compact .shift-punch-out-btn-title {
    font-size: 0.82rem;
}

.shift-punch-out-btn--compact .shift-punch-out-btn-sub {
    font-size: 0.68rem;
}

.shift-punch-out-btn--dialog {
    width: 100%;
    justify-content: center;
    min-height: 3rem;
}

.shift-team-member .shift-punch-out-btn {
    margin-left: auto;
}

.home-timbratura-active-row .shift-punch-out-btn,
.wallet-punch-actions .shift-punch-out-btn {
    margin-left: auto;
}

.home-timbratura-actions .shift-punch-out-btn {
    width: 100%;
    justify-content: flex-start;
}

@media (max-width: 640px) {
    .shift-team-member {
        flex-wrap: wrap;
    }

    .shift-team-member .shift-punch-out-btn {
        width: 100%;
        margin-left: 0;
        margin-top: 0.35rem;
    }
}

.shift-team-out-btn {
    flex-shrink: 0;
}

.shift-team-out-btn--colleague {
    font-size: 0.72rem;
    padding: 0.4rem 0.65rem;
}

.shift-team-add-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6ee7b7;
    margin-bottom: 0.45rem;
}

.shift-team-add-grid {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    align-items: end;
}

.shift-team-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.78rem;
    color: #94a3b8;
}

.shift-team-field span {
    font-weight: 600;
}

.shift-team-select,
.shift-team-field input {
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    font-size: 0.85rem;
}

.shift-team-add-btn {
    border: 0;
    border-radius: 10px;
    padding: 0.5rem 0.85rem;
    font-weight: 700;
    font-size: 0.82rem;
    cursor: pointer;
    background: #34d399;
    color: #022c22;
    white-space: nowrap;
}

.shift-team-add-btn:hover {
    filter: brightness(1.06);
}

.shift-team-hint,
.shift-team-empty {
    margin: 0.5rem 0 0;
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.35;
}

@media (max-width: 720px) {
    .shift-team-add-grid {
        grid-template-columns: 1fr;
    }

    .shift-team-add-btn {
        width: 100%;
    }

    .shift-team-head {
        flex-direction: column;
    }
}

html.theme-light .shift-team-gate {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .shift-team-gate-note--solo {
    background: #ecfeff;
    border-color: #a5f3fc;
    color: #0e7490;
}

html.theme-light .shift-team-member {
    background: #fff;
    border-color: #e2e8f0;
}

html.theme-light .shift-team-member.is-you {
    background: #ecfdf5;
    border-color: #34d39988;
}

html.theme-light .shift-team-select,
html.theme-light .shift-team-field input {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .shift-team-title {
    color: #0f172a;
}

.home-timbratura-active-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.home-timbratura-pulse {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 0 0 rgb(52 211 153 / 0.65);
    animation: home-timbratura-pulse 1.8s ease-out infinite;
}

@keyframes home-timbratura-pulse {
    0% { box-shadow: 0 0 0 0 rgb(52 211 153 / 0.55); }
    70% { box-shadow: 0 0 0 10px rgb(52 211 153 / 0); }
    100% { box-shadow: 0 0 0 0 rgb(52 211 153 / 0); }
}

.home-timbratura-active-copy strong {
    display: block;
    font-size: 1rem;
    color: #ecfdf5;
}

.home-timbratura-active-copy p {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    color: #94a3b8;
}

.home-timbratura-active-form {
    margin: 0;
}

.shift-coworker-panel {
    width: 100%;
    padding-top: 0.65rem;
    border-top: 1px solid rgb(52 211 153 / 0.22);
}

.shift-coworker-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6ee7b7;
    margin-bottom: 0.4rem;
}

.shift-coworker-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.shift-coworker-chip {
    font-size: 0.78rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid #334155;
    background: #0f172a;
    color: #e2e8f0;
}

.shift-coworker-chip.is-you {
    border-color: #34d39966;
    background: #34d39918;
    color: #a7f3d0;
}

.shift-coworker-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    align-items: end;
    margin: 0;
}

.shift-coworker-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.78rem;
    color: #94a3b8;
}

.shift-coworker-field span {
    font-weight: 600;
}

.shift-coworker-select,
.shift-coworker-field input {
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    font-size: 0.85rem;
}

.shift-coworker-submit {
    border: 0;
    border-radius: 10px;
    padding: 0.5rem 0.85rem;
    font-weight: 700;
    font-size: 0.82rem;
    cursor: pointer;
    background: #34d399;
    color: #022c22;
    white-space: nowrap;
}

.shift-coworker-submit:hover {
    filter: brightness(1.06);
}

.shift-coworker-hint,
.shift-coworker-empty {
    margin: 0.5rem 0 0;
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.35;
}

@media (max-width: 720px) {
    .shift-coworker-form {
        grid-template-columns: 1fr;
    }

    .shift-coworker-submit {
        width: 100%;
    }
}

html.theme-light .shift-coworker-chip {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .shift-coworker-chip.is-you {
    background: #ecfdf5;
    border-color: #34d39988;
}

html.theme-light .shift-coworker-select,
html.theme-light .shift-coworker-field input {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

.shift-checkout-dialog {
    width: min(520px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    margin: auto;
    padding: 0;
    border: 1px solid #334155;
    border-radius: 18px;
    background: #0f172a;
    color: #e2e8f0;
}

.shift-checkout-dialog::backdrop {
    background: rgba(2, 6, 23, 0.78);
}

.shift-checkout-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem 1.35rem 1.35rem;
}

.shift-checkout-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.shift-checkout-kicker {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #f87171;
}

.shift-checkout-head h2 {
    margin: 0.2rem 0 0;
    font-size: 1.2rem;
}

.shift-checkout-lead {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.45;
}

.shift-checkout-close {
    border: 0;
    background: transparent;
    color: #94a3b8;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.shift-checkout-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.88rem;
    font-weight: 600;
}

.shift-checkout-field textarea {
    min-height: 8rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    font-weight: 400;
    resize: vertical;
}

.shift-checkout-colleague-auth input {
    padding: 0.65rem 0.85rem;
    border-radius: 12px;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    font-weight: 400;
}

.shift-checkout-colleague-note {
    font-size: 0.78rem;
    font-weight: 500;
    color: #94a3b8;
}

.shift-checkout-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.shift-checkout-foot .shift-punch-out-btn--dialog {
    flex: 1 1 12rem;
}

.shift-checkout-cancel {
    border: 1px solid #475569;
    border-radius: 10px;
    padding: 0.55rem 0.9rem;
    background: transparent;
    color: #cbd5e1;
    cursor: pointer;
}

.wallet-punch-actions {
    margin-top: 0.5rem;
}

html.theme-light .shift-checkout-dialog {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .shift-checkout-field textarea {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #0f172a;
}

.wallet-vault-kpi .wallet-vault-unlock-inline,
.wallet-vault-locked .wallet-vault-unlock-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.65rem;
    align-items: center;
}

.wallet-vault-unlock-input {
    flex: 1 1 8rem;
    min-width: 0;
    padding: 0.45rem 0.65rem;
    border-radius: 10px;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    font-size: 0.85rem;
}

.wallet-vault-unlock-btn {
    flex-shrink: 0;
    border: none;
    border-radius: 10px;
    padding: 0.45rem 0.85rem;
    background: #22d3ee;
    color: #0f172a;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.wallet-vault-lockbar {
    flex-shrink: 0;
}

.wallet-vault-lock-btn {
    border: 1px solid rgb(34 211 238 / 0.45);
    border-radius: 10px;
    padding: 0.45rem 0.85rem;
    background: rgb(34 211 238 / 0.08);
    color: #67e8f9;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.wallet-dashboard-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

html.theme-light .wallet-vault-unlock-input {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #0f172a;
}

.room-tz-badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #67e8f9;
    background: rgb(34 211 238 / 0.12);
    border: 1px solid rgb(34 211 238 / 0.35);
    vertical-align: middle;
}

.centralino-hours-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.home-timbratura-room-rules {
    margin-bottom: 0.85rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.55);
}

.home-timbratura-room-rules-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #67e8f9;
}

.home-timbratura-room-rules-today {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.45;
    color: #cbd5e1;
}

.home-timbratura-room-rules-today strong {
    color: #f1f5f9;
}

.home-timbratura-hours-fold {
    margin-top: 0.55rem;
    font-size: 0.78rem;
    color: #94a3b8;
}

.home-timbratura-hours-fold summary {
    cursor: pointer;
    font-weight: 700;
    color: #67e8f9;
}

.home-timbratura-hours-list {
    margin: 0.45rem 0 0;
    padding: 0;
    list-style: none;
}

.home-timbratura-hours-row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.28rem 0;
    border-bottom: 1px solid rgb(51 65 85 / 0.35);
    font-size: 0.78rem;
    color: #cbd5e1;
}

.home-timbratura-hours-row.is-closed span:last-child {
    color: #64748b;
}

@media (max-width: 900px) {
    .home-timbratura-hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

html.theme-light .home-timbratura-hero {
    border-color: #7dd3fc;
    background: linear-gradient(135deg, #e0f2fe 0%, #ffffff 55%);
    box-shadow: 0 12px 32px rgb(15 23 42 / 0.08);
}

html.theme-light .home-timbratura-hero-copy h2 {
    color: #0f172a;
}

html.theme-light .home-timbratura-lead,
html.theme-light .home-timbratura-unlock-list {
    color: #475569;
}

html.theme-light .home-timbratura-menu-hint {
    background: #f8fafc;
    border-color: #dbe4f0;
    color: #64748b;
}

html.theme-light .home-timbratura-punch {
    background: #f8fafc;
    border-color: #dbe4f0;
}

html.theme-light .home-timbratura-field select {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .home-timbratura-active {
    background: linear-gradient(90deg, #ecfdf5, #f8fafc);
    border-color: #6ee7b7;
}

html.theme-light .home-timbratura-active-copy strong {
    color: #065f46;
}

.booking-detail-form {
    margin-top: 1rem;
}

.booking-detail-panel .operator-walkin-field,
.booking-detail-panel select.operator-walkin-field,
.booking-detail-panel textarea.operator-walkin-field {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #0f172a;
}

.booking-detail-section {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.booking-detail-section-title {
    font-size: .85rem;
    font-weight: 700;
    margin-bottom: .75rem;
    color: #334155;
}

.booking-detail-readonly {
    font-size: .85rem;
    color: #64748b;
}

.booking-detail-actions {
    margin-top: 1rem;
}

.booking-delete-form {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgb(248 113 113 / 0.25);
}

.booking-delete-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid rgb(248 113 113 / 0.45);
    border-radius: 0.65rem;
    background: rgb(127 29 29 / 0.15);
    color: #fca5a5;
    padding: 0.5rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.booking-delete-btn:hover {
    background: rgb(127 29 29 / 0.28);
    border-color: rgb(248 113 113 / 0.65);
}

html.theme-light .booking-delete-form {
    border-top-color: #fecaca;
}

html.theme-light .booking-delete-btn {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #b91c1c;
}

button.operator-cal-event {
    appearance: none;
    width: 100%;
    border: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.operator-cal-pay-block {
    margin-bottom: 1rem;
}

.operator-prenotazioni-hub {
    margin-bottom: 0.5rem;
}

.operator-prenotazioni-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.25rem;
}

.operator-prenotazioni-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.operator-prenotazioni-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.operator-pren-stat {
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: rgb(2 6 23 / 0.55);
    padding: 0.65rem 0.75rem;
}

.operator-pren-stat span {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.operator-pren-stat strong {
    display: block;
    margin-top: 0.2rem;
    font-size: 1.35rem;
    color: #e2e8f0;
}

.operator-booking-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1rem;
}

.operator-booking-filter {
    border-radius: 999px;
    border: 1px solid #334155;
    padding: 0.35rem 0.85rem;
    font-size: 0.78rem;
    color: #cbd5e1;
}

.operator-booking-filter.is-active {
    border-color: #22d3ee;
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
}

.operator-prenotazioni-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 900px) {
    .operator-prenotazioni-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.operator-prenotazioni-col-title {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #94a3b8;
    margin-bottom: 0.65rem;
}

.operator-booking-list {
    display: grid;
    gap: 0.5rem;
}

.operator-booking-row {
    display: flex;
    flex-direction: column;
    border-radius: 0.85rem;
    border: 1px solid var(--cal-border, #334155);
    background: #020617;
    padding: 0;
    overflow: hidden;
    border-left: 4px solid var(--cal-accent, #22d3ee);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.03);
}

.operator-booking-row.is-clickable {
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}

.operator-booking-row.is-clickable:hover {
    border-color: rgb(34 211 238 / 0.5);
    transform: translateY(-1px);
}

.operator-booking-row.is-clickable:focus-visible {
    outline: 2px solid #22d3ee;
    outline-offset: 2px;
}

.operator-booking-row.is-expanded {
    border-color: rgb(34 211 238 / 0.65);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.2);
}

.operator-booking-row.is-today {
    border-color: rgb(34 211 238 / 0.45);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.15);
}

.operator-booking-row-online,
.operator-booking-row-manual,
.operator-booking-row-partita {
    /* tono prodotto via .tone-* */
}

.operator-booking-shell {
    display: grid;
    grid-template-columns: 5.25rem 1fr;
    align-items: stretch;
    min-width: 0;
}

.operator-booking-time {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.7rem 0.55rem;
    border-right: 1px solid rgb(51 65 85 / 0.6);
    background: rgb(15 23 42 / 0.5);
    text-align: center;
}

.operator-booking-time-hour {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--cal-accent-soft, #67e8f9);
    line-height: 1.1;
}

.operator-booking-time-day {
    font-size: 0.68rem;
    font-weight: 600;
    color: #94a3b8;
    margin-top: 0.2rem;
    text-transform: capitalize;
}

.operator-booking-grid {
    display: grid;
    grid-template-columns: minmax(8.5rem, 1.05fr) minmax(9.5rem, 1.4fr) auto;
    align-items: stretch;
    min-width: 0;
}

.operator-booking-section {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.65rem 0.8rem;
    min-width: 0;
}

.operator-booking-section + .operator-booking-section {
    border-left: 1px solid rgb(51 65 85 / 0.55);
}

.operator-booking-section-product {
    background: linear-gradient(180deg, var(--cal-bg, rgb(34 211 238 / 0.1)) 0%, transparent 85%);
}

.operator-booking-kicker {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.operator-booking-section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.35rem;
}

.operator-booking-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    justify-content: flex-end;
}

.operator-booking-customer {
    font-size: 0.95rem;
    color: #f1f5f9;
    line-height: 1.25;
}

.operator-booking-phone {
    font-size: 0.72rem;
    color: #94a3b8;
}

.operator-booking-product-name {
    font-size: 1rem;
    font-weight: 800;
    color: var(--cal-accent-soft, #67e8f9);
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.operator-booking-room {
    font-size: 0.72rem;
    color: #94a3b8;
}

.operator-booking-section-details {
    flex-direction: row;
    gap: 0;
    padding: 0;
}

.operator-booking-detail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.55rem 0.7rem;
    min-width: 4.25rem;
    border-left: 1px solid rgb(51 65 85 / 0.55);
}

.operator-booking-detail:first-child {
    border-left: none;
}

.operator-booking-detail-value {
    font-size: 1rem;
    font-weight: 800;
    color: #f8fafc;
    line-height: 1;
}

.operator-booking-section-details .operator-booking-detail:first-child .operator-booking-detail-value {
    color: var(--cal-accent-soft, #67e8f9);
    font-size: 1.25rem;
}

.operator-booking-notes-block {
    padding: 0.45rem 0.85rem 0.55rem;
    font-size: 0.72rem;
    color: #94a3b8;
    border-top: 1px solid rgb(51 65 85 / 0.45);
    background: rgb(15 23 42 / 0.35);
}

.operator-booking-top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.35rem;
    align-items: center;
}

.operator-booking-badge {
    border-radius: 999px;
    padding: 0.15rem 0.55rem;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.operator-booking-badge-online {
    background: rgb(56 189 248 / 0.15);
    color: #7dd3fc;
}

.operator-booking-badge-manual,
.operator-booking-badge-walkin {
    background: rgb(167 139 250 / 0.15);
    color: #ddd6fe;
}

.operator-booking-product {
    display: block;
    font-size: 0.8rem;
    color: #cbd5e1;
}

.operator-booking-meta,
.operator-booking-notes {
    display: block;
    font-size: 0.72rem;
    color: #94a3b8;
}

@media (max-width: 860px) {
    .operator-booking-shell {
        grid-template-columns: 1fr;
    }

    .operator-booking-time {
        flex-direction: row;
        justify-content: flex-start;
        gap: 0.5rem;
        border-right: none;
        border-bottom: 1px solid rgb(51 65 85 / 0.55);
        padding: 0.55rem 0.85rem;
    }

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

    .operator-booking-section + .operator-booking-section {
        border-left: none;
        border-top: 1px solid rgb(51 65 85 / 0.45);
    }

    .operator-booking-section-details {
        flex-direction: row;
        justify-content: stretch;
    }

    .operator-booking-detail {
        flex: 1;
        min-width: 0;
    }

    .operator-booking-detail + .operator-booking-detail {
        border-left: 1px solid rgb(51 65 85 / 0.55);
    }
}

.operator-booking-flash {
    margin-bottom: 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(16 185 129 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
    padding: 0.6rem 0.85rem;
    font-size: 0.85rem;
}

.operator-booking-flash--warn {
    border-color: rgb(245 158 11 / 0.45);
    background: rgb(245 158 11 / 0.1);
    color: #fcd34d;
}

.operator-prenotazione-form-panel .operator-partita-btn,
.operator-prenotazioni-hub .operator-partita-btn {
    background: #0891b2;
}

.operator-walkin-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    margin-top: .25rem;
}

.operator-walkin-col {
    border-radius: 1rem;
    border: 1px solid rgb(51 65 85 / .75);
    background: rgb(2 6 23 / .35);
    padding: 1rem;
}

.operator-walkin-col-title {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: .85rem;
}

.operator-walkin-row {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.operator-walkin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid rgb(51 65 85 / .65);
}

.operator-customer-field {
    position: relative;
}

.operator-customer-suggest {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + .25rem);
    z-index: 50;
    display: none;
    gap: .25rem;
    max-height: min(16rem, 40vh);
    overflow-y: auto;
    border-radius: .85rem;
    border: 1px solid rgb(34 211 238 / .35);
    background: rgb(15 23 42 / .98);
    padding: .35rem;
    box-shadow: 0 16px 40px rgb(0 0 0 / .35);
    pointer-events: auto;
}

.operator-customer-suggest:not([hidden]),
.operator-customer-suggest.is-open {
    display: grid !important;
}

.operator-customer-suggest:empty {
    display: none !important;
    padding: 0;
    border: none;
    box-shadow: none;
}

.operator-customer-suggest-item {
    display: grid;
    gap: .15rem;
    width: 100%;
    text-align: left;
    border-radius: .65rem;
    border: 1px solid transparent;
    background: transparent;
    padding: .55rem .65rem;
    color: inherit;
    cursor: pointer;
}

.operator-customer-suggest-item:hover,
.operator-customer-suggest-item:focus-visible {
    border-color: rgb(34 211 238 / .35);
    background: rgb(34 211 238 / .1);
    outline: none;
}

.operator-customer-suggest-item strong {
    font-size: .88rem;
}

.operator-customer-suggest-item span {
    font-size: .72rem;
    color: #94a3b8;
}

.operator-customer-match {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-top: .85rem;
    border-radius: .75rem;
    border: 1px solid rgb(34 211 238 / .25);
    background: rgb(34 211 238 / .08);
    padding: .55rem .65rem;
    font-size: .78rem;
}

.operator-customer-match-badge {
    border-radius: 999px;
    padding: .12rem .45rem;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.operator-customer-match-badge.is-loyalty {
    background: rgb(34 211 238 / .18);
    color: #67e8f9;
}

.operator-customer-match-badge.is-returning {
    background: rgb(167 139 250 / .18);
    color: #c4b5fd;
}

@media (max-width: 900px) {
    .operator-walkin-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .operator-walkin-row {
        grid-template-columns: 1fr;
    }
}

/* Walk-in studio — inserimento prenotazioni operatore */
.operator-prenotazioni-hub.operator-cal-prenotazioni {
    padding: 0;
    border: none;
    background: transparent;
}

.operator-walkin-studio {
    margin-top: 1.25rem;
    border-radius: 1.75rem;
    border: 1px solid rgb(34 211 238 / .28);
    background:
        radial-gradient(120% 80% at 100% 0%, rgb(34 211 238 / .12), transparent 55%),
        radial-gradient(90% 70% at 0% 100%, rgb(167 139 250 / .1), transparent 50%),
        linear-gradient(165deg, rgb(15 23 42 / .92), rgb(2 6 23 / .88));
    box-shadow:
        0 24px 60px rgb(0 0 0 / .28),
        inset 0 1px 0 rgb(255 255 255 / .06);
    overflow: hidden;
}

.operator-walkin-studio.is-dialog {
    margin-top: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
}

.walkin-booking-dialog-panel {
    max-height: calc(100vh - 1.25rem);
    overflow: auto;
    padding: 0;
}

.walkin-open-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 3.35rem;
    border: none;
    border-radius: 1.1rem;
    padding: .85rem 1.35rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    background: linear-gradient(135deg, #22d3ee 0%, #06b6d4 55%, #0891b2 100%);
    box-shadow: 0 14px 36px rgb(34 211 238 / .32);
    cursor: pointer;
    transition: transform .12s, box-shadow .15s;
}

.walkin-open-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgb(34 211 238 / .4);
}

.walkin-open-btn-icon {
    display: grid;
    place-items: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: .55rem;
    font-size: 1.25rem;
    line-height: 1;
    background: rgb(15 23 42 / .12);
}

.operator-cal-prenotazioni-extras {
    margin-top: 1rem;
}

.operator-booking-flash {
    margin-bottom: 1rem;
}

.walkin-studio-hero {
    padding: 1.75rem 1.75rem 1.25rem;
    border-bottom: 1px solid rgb(51 65 85 / .45);
    background: linear-gradient(135deg, rgb(34 211 238 / .08), rgb(167 139 250 / .06));
}

.walkin-studio-hero-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .28rem .75rem;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #67e8f9;
    background: rgb(34 211 238 / .14);
    border: 1px solid rgb(34 211 238 / .32);
}

.walkin-studio-title {
    margin: .85rem 0 0;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #f8fafc;
}

.walkin-studio-lead {
    margin: .55rem 0 0;
    max-width: 42rem;
    font-size: 1rem;
    line-height: 1.5;
    color: #94a3b8;
}

.walkin-studio-form {
    display: grid;
    gap: 1rem;
    padding: 1.25rem 1.25rem 1.5rem;
}

.walkin-step {
    border-radius: 1.25rem;
    border: 1px solid rgb(51 65 85 / .55);
    background: rgb(2 6 23 / .42);
    overflow: hidden;
}

.walkin-step-head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.1rem 1.25rem .35rem;
}

.walkin-step-num {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    border-radius: 1rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
    background: linear-gradient(145deg, #22d3ee, #06b6d4);
    box-shadow: 0 8px 24px rgb(34 211 238 / .35);
}

.walkin-step-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #f1f5f9;
}

.walkin-step-hint {
    margin: .25rem 0 0;
    font-size: .88rem;
    color: #94a3b8;
}

.walkin-step-body {
    padding: .75rem 1.25rem 1.25rem;
}

.walkin-source-pills {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.walkin-source-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 3.25rem;
    border-radius: 1rem;
    border: 2px solid rgb(51 65 85 / .75);
    background: rgb(15 23 42 / .55);
    padding: .75rem 1rem;
    font-size: 1rem;
    font-weight: 600;
    color: #cbd5e1;
    cursor: pointer;
    transition: border-color .15s, background .15s, transform .12s;
}

.walkin-source-pill input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.walkin-source-pill.is-active,
.walkin-source-pill:has(input:checked) {
    border-color: rgb(34 211 238 / .65);
    background: rgb(34 211 238 / .12);
    color: #e0f2fe;
    transform: translateY(-1px);
}

.walkin-source-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.walkin-field {
    display: grid;
    gap: .45rem;
}

.walkin-field-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.walkin-field-optional {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    opacity: .75;
}

.walkin-input {
    width: 100%;
    border-radius: 1rem;
    border: 2px solid rgb(51 65 85 / .8);
    background: rgb(2 6 23 / .75);
    padding: .85rem 1rem;
    font-size: 1.05rem;
    color: #f8fafc;
    transition: border-color .15s, box-shadow .15s;
}

.walkin-input:focus {
    outline: none;
    border-color: rgb(34 211 238 / .65);
    box-shadow: 0 0 0 3px rgb(34 211 238 / .18);
}

.walkin-input-hero {
    min-height: 3.5rem;
    font-size: 1.35rem;
    font-weight: 600;
    padding: 1rem 1.15rem;
}

.walkin-input-time,
.walkin-vr-time-slot {
    min-height: 3.25rem;
    font-size: 1.2rem;
    font-weight: 600;
}

.walkin-vr-time-slot {
    cursor: pointer;
}

.walkin-textarea {
    min-height: 4.5rem;
    resize: vertical;
    line-height: 1.45;
}

.walkin-field-row {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: .85rem;
}

.walkin-field-row-compact {
    margin-top: 0;
}

.walkin-field-hero {
    position: relative;
}

.walkin-product-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
}

.walkin-product-radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.walkin-product-card {
    position: relative;
    display: grid;
    gap: .55rem;
    min-height: 7.5rem;
    border-radius: 1.15rem;
    border: 2px solid var(--cal-border, rgb(51 65 85 / .75));
    background: var(--cal-bg, rgb(15 23 42 / .55));
    padding: 1rem 1rem .95rem;
    cursor: pointer;
    transition: transform .15s, border-color .15s, box-shadow .15s;
    overflow: hidden;
}

.walkin-product-card-glow {
    position: absolute;
    inset: auto -20% -40% -20%;
    height: 70%;
    background: radial-gradient(circle, var(--cal-glow, rgb(34 211 238 / .25)), transparent 70%);
    opacity: 0;
    transition: opacity .2s;
    pointer-events: none;
}

.walkin-product-card-name {
    position: relative;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.25;
    color: #f8fafc;
}

.walkin-product-card-meta {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-top: auto;
}

.walkin-product-card-price {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--cal-accent-soft, #67e8f9);
}

.walkin-product-card-duration {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.walkin-product-card:hover {
    transform: translateY(-2px);
    border-color: var(--cal-accent, #22d3ee);
}

.walkin-product-card.is-selected,
.walkin-product-card:has(.walkin-product-radio:checked) {
    border-color: var(--cal-accent, #22d3ee);
    box-shadow: 0 12px 32px var(--cal-glow, rgb(34 211 238 / .22));
    transform: translateY(-2px);
}

.walkin-product-card.is-selected .walkin-product-card-glow,
.walkin-product-card:has(.walkin-product-radio:checked) .walkin-product-card-glow {
    opacity: 1;
}

.walkin-when-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: 1.1fr 1fr 1fr;
    margin-bottom: .85rem;
}

.walkin-players-stepper {
    display: grid;
    grid-template-columns: 3.25rem 1fr 3.25rem;
    align-items: stretch;
    gap: .5rem;
    min-height: 3.25rem;
}

.walkin-stepper-btn {
    display: grid;
    place-items: center;
    border-radius: 1rem;
    border: 2px solid rgb(34 211 238 / .45);
    background: rgb(34 211 238 / .12);
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1;
    color: #67e8f9;
    cursor: pointer;
    transition: background .12s, transform .1s;
}

.walkin-stepper-btn:hover {
    background: rgb(34 211 238 / .22);
}

.walkin-stepper-btn:active {
    transform: scale(.96);
}

.walkin-players-input {
    text-align: center;
    border-radius: 1rem;
    border: 2px solid rgb(51 65 85 / .8);
    background: rgb(2 6 23 / .75);
    font-size: 1.65rem;
    font-weight: 800;
    color: #f8fafc;
}

.walkin-quick-partita {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: .85rem;
    padding: .75rem 1rem;
    border-radius: .85rem;
    border: 1px dashed rgb(51 65 85 / .75);
    font-size: .92rem;
    color: #94a3b8;
    cursor: pointer;
}

.walkin-quick-partita input {
    width: 1.15rem;
    height: 1.15rem;
    accent-color: #22d3ee;
}

.walkin-submit-wrap {
    padding: .25rem .25rem 0;
}

.walkin-submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .85rem;
    width: 100%;
    min-height: 4.25rem;
    border: none;
    border-radius: 1.25rem;
    padding: 1rem 1.5rem;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: .01em;
    color: #0f172a;
    background: linear-gradient(135deg, #22d3ee 0%, #06b6d4 45%, #0891b2 100%);
    box-shadow:
        0 16px 40px rgb(34 211 238 / .35),
        inset 0 1px 0 rgb(255 255 255 / .35);
    cursor: pointer;
    transition: transform .12s, box-shadow .15s;
}

.walkin-submit-btn:hover {
    transform: translateY(-2px);
    box-shadow:
        0 20px 48px rgb(34 211 238 / .42),
        inset 0 1px 0 rgb(255 255 255 / .35);
}

.walkin-submit-btn:active {
    transform: translateY(0);
}

.walkin-submit-icon {
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .75rem;
    font-size: 1.15rem;
    background: rgb(15 23 42 / .15);
}

@media (max-width: 900px) {
    .walkin-when-grid {
        grid-template-columns: 1fr 1fr;
    }

    .walkin-field-players {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .walkin-studio-hero,
    .walkin-studio-form {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .walkin-source-pills,
    .walkin-field-row,
    .walkin-when-grid {
        grid-template-columns: 1fr;
    }

    .walkin-product-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .operator-prenotazioni-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.operator-cal-event-partita {
    border-color: rgb(124 58 237 / 0.35);
}

.operator-on-duty-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    margin-top: 1rem;
    padding: 0.55rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(15 23 42 / 0.55);
    font-size: 0.8rem;
}

.operator-on-duty-bar.is-empty {
    opacity: 0.85;
}

.operator-on-duty-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.operator-on-duty-label {
    font-weight: 600;
    color: #cbd5e1;
}

.operator-on-duty-badge {
    border-radius: 999px;
    background: rgb(16 185 129 / 0.12);
    color: #6ee7b7;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
}

.operator-on-duty-empty {
    color: #64748b;
    font-size: 0.78rem;
}

.operator-on-duty-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
    min-width: 0;
}

.operator-on-duty-chip {
    border-radius: 999px;
    border: 1px solid rgb(52 211 153 / 0.35);
    background: rgb(16 185 129 / 0.1);
    color: #a7f3d0;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    white-space: nowrap;
}

.operator-sala-picker {
    margin-bottom: 1.25rem;
}

.operator-sala-picker-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.operator-sala-picker-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #67e8f9;
}

.operator-sala-picker-hint {
    margin-top: 0.25rem;
    font-size: 0.8rem;
    color: #94a3b8;
    max-width: 36rem;
}

.operator-sala-picker-active-badge {
    border-radius: 999px;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    white-space: nowrap;
}

.operator-sala-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.operator-sala-pill {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 8.5rem;
    padding: 0.65rem 0.9rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.9);
    background: rgb(15 23 42 / 0.85);
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s, transform 0.15s;
}

.operator-sala-pill:hover {
    border-color: rgb(34 211 238 / 0.45);
    transform: translateY(-1px);
}

.operator-sala-pill.is-active {
    border-color: rgb(34 211 238 / 0.7);
    background: rgb(34 211 238 / 0.14);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.2);
}

.operator-sala-pill-name {
    font-weight: 700;
    color: #e2e8f0;
}

.operator-sala-pill-city {
    font-size: 0.75rem;
    color: #94a3b8;
}

.operator-sala-picker-single {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
}

.operator-sala-picker-single strong {
    font-size: 1.05rem;
    color: #e2e8f0;
}

.operator-sala-verify-card h2 {
    line-height: 1.2;
}

.operator-sala-verify-error {
    margin-top: 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(248 113 113 / 0.45);
    background: rgb(127 29 29 / 0.25);
    color: #fecaca;
    font-size: 0.85rem;
    padding: 0.65rem 0.85rem;
}

.operator-sala-pill:not(.is-active) {
    border-style: dashed;
}

span.operator-sala-pill.is-active {
    cursor: default;
}

html.theme-light .operator-sala-verify-error {
    background: #fef2f2;
    border-color: #fecaca;
    color: #b91c1c;
}

.operator-sala-picker-city {
    font-size: 0.85rem;
    color: #94a3b8;
}

.op-shift-panel,
.op-shift-week-panel {
    scroll-margin-top: 1.5rem;
    padding: 1rem 1.1rem 1.15rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(180deg, rgb(15 23 42 / 0.95) 0%, rgb(2 6 23 / 0.98) 100%);
    box-shadow:
        0 0 0 1px rgb(15 23 42 / 0.85) inset,
        0 14px 32px rgb(2 6 23 / 0.45);
}

.op-shift-panel-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 800;
    color: #f8fafc;
}

.op-shift-panel-lead {
    margin: 0.35rem 0 0;
    font-size: 0.84rem;
    line-height: 1.45;
    color: #94a3b8;
}

.op-shift-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    margin-bottom: 0.85rem;
}

.op-shift-panel-toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.55rem;
}

.op-shift-view-tabs {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 0.6rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.55), rgb(15 23 42 / 0.4));
}

.op-shift-view-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 5.5rem;
    padding: 0.4rem 0.75rem;
    border-radius: 0.45rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}

.op-shift-view-tab:hover {
    color: #e2e8f0;
}

.op-shift-view-tab.is-active {
    color: #a5f3fc;
    background: linear-gradient(135deg, rgb(34 211 238 / 0.22), rgb(14 165 233 / 0.1));
    box-shadow: 0 2px 10px rgb(34 211 238 / 0.12);
}

.op-shift-period-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.op-shift-period-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.55rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.7), rgb(15 23 42 / 0.55));
    color: #cbd5e1;
    font-size: 1.2rem;
    line-height: 1;
    font-weight: 700;
    text-decoration: none;
}

.op-shift-period-btn:hover {
    border-color: rgb(34 211 238 / 0.45);
    color: #a5f3fc;
}

.op-shift-period-label {
    font-size: 0.9rem;
    font-weight: 700;
    color: #e2e8f0;
    padding: 0 0.35rem;
    min-width: 9rem;
    text-align: center;
    text-transform: capitalize;
}

.op-opening-badge {
    flex-shrink: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, rgb(34 211 238 / 0.2), rgb(14 165 233 / 0.08));
    border: 1px solid rgb(34 211 238 / 0.3);
    padding: 0.28rem 0.6rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #a5f3fc;
}

.op-opening-hours-block {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #1e293b;
}

.op-opening-hours-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 0.65rem;
}

.op-opening-hours-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

@media (min-width: 640px) {
    .op-opening-hours-strip {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .op-opening-hours-strip {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

.op-opening-day {
    border-radius: 0.75rem;
    border: 1px solid #334155;
    background: #020617;
    padding: 0.55rem 0.65rem;
}

.op-opening-day.is-closed .op-opening-time {
    color: #94a3b8;
}

.op-opening-weekday {
    display: block;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.op-opening-time {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: #67e8f9;
    line-height: 1.25;
}

.op-shift-week-subhead {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.op-shift-day-open {
    margin: 0.35rem 0.45rem 0;
    padding: 0.35rem 0.45rem;
    border-radius: 0.5rem;
    background: rgb(34 211 238 / 0.08);
    border: 1px solid rgb(34 211 238 / 0.2);
}

.op-shift-day-open.is-closed {
    background: rgb(100 116 139 / 0.12);
    border-color: #334155;
}

.op-shift-day-open-label {
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
}

.op-shift-day-open-time {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #67e8f9;
    margin-top: 0.1rem;
}

.op-shift-day-open.is-closed .op-shift-day-open-time {
    color: #94a3b8;
}

.op-shift-day-staff-label {
    padding: 0.35rem 0.45rem 0.15rem;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.op-shift-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.55rem;
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.6rem;
    border: 1px solid rgb(51 65 85 / 0.5);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.35), rgb(15 23 42 / 0.2));
}

.op-shift-legend-empty {
    font-size: 0.84rem;
    color: #94a3b8;
}

.op-shift-week-scroll {
    overflow-x: auto;
    margin: 0 -0.1rem;
    padding: 0 0.1rem 0.2rem;
}

.op-shift-month-wrap {
    overflow-x: auto;
    padding-bottom: 0.15rem;
}

.op-shift-month-weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
    margin-bottom: 0.35rem;
    min-width: min(100%, 52rem);
}

.op-shift-month-wd {
    text-align: center;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.op-shift-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
    min-width: min(100%, 52rem);
}

.op-shift-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--op-text, #f8fafc);
    border-radius: 999px;
    border: 1px solid var(--op-border, #475569);
    background: var(--op-bg, #1e293b);
    padding: 0.35rem 0.7rem;
}

.op-shift-legend-item i {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 999px;
    background: var(--op-border, #22d3ee);
    flex-shrink: 0;
}

.op-shift-legend-item.is-you {
    box-shadow: 0 0 0 2px var(--op-border, #22d3ee);
}

.op-shift-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(9.5rem, 1fr));
    gap: 0.5rem;
    min-width: min(100%, 70rem);
}

.op-shift-day {
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.55);
    background: linear-gradient(165deg, rgb(30 41 59 / 0.45) 0%, rgb(15 23 42 / 0.55) 100%);
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.05) inset;
}

.op-shift-day.is-compact {
    min-height: 5.5rem;
}

.op-shift-day.is-outside-month {
    opacity: 0.38;
    background: linear-gradient(165deg, rgb(15 23 42 / 0.35) 0%, rgb(2 6 23 / 0.5) 100%);
}

.op-shift-day.is-closed {
    opacity: 0.78;
}

.op-shift-day.is-today {
    border-color: rgb(34 211 238 / 0.55);
    box-shadow:
        0 0 0 1px rgb(34 211 238 / 0.2),
        0 0 20px rgb(34 211 238 / 0.1);
    background: linear-gradient(165deg, rgb(34 211 238 / 0.1) 0%, rgb(15 23 42 / 0.55) 100%);
}

.op-shift-day-head {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.4rem 0.45rem;
    border-bottom: 1px solid rgb(30 41 59);
}

.op-shift-day-date {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.op-shift-weekday {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    font-weight: 700;
}

.op-shift-day.is-today .op-shift-weekday {
    color: #67e8f9;
}

.op-shift-daynum {
    font-size: 1rem;
    font-weight: 800;
    color: #f8fafc;
    line-height: 1;
}

.op-shift-day.is-compact .op-shift-daynum {
    font-size: 0.88rem;
}

.op-shift-day-hours {
    font-size: 0.74rem;
    font-weight: 700;
    color: #a5f3fc;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.op-shift-day.is-compact .op-shift-day-hours {
    font-size: 0.66rem;
}

.op-shift-day.is-closed .op-shift-day-hours {
    color: #94a3b8;
}

.op-shift-day-body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.35rem;
    flex: 1;
}

.op-shift-block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    border-radius: 0.45rem;
    border: 1px solid var(--op-border, #475569);
    border-left-width: 4px;
    background: var(--op-bg, #1e293b);
    padding: 0.35rem 0.45rem;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.op-shift-block.is-you {
    box-shadow: 0 0 0 2px var(--op-border, #22d3ee);
}

.op-shift-block-actual {
    border-style: dashed;
    border-width: 2px;
    border-left-width: 5px;
    outline: 2px dashed rgb(52 211 153 / 0.55);
    outline-offset: 1px;
    padding: 0.55rem 0.65rem;
    gap: 0.22rem;
    box-shadow: 0 0 0 1px rgb(16 185 129 / 0.2), 0 6px 18px rgb(0 0 0 / 0.3);
}

.op-shift-block-actual .op-shift-block-badge {
    font-size: 0.72rem;
    line-height: 1.15;
    padding: 0.18rem 0.5rem;
    border-radius: 0.4rem;
    background: rgb(16 185 129 / 0.28);
    margin-bottom: 0.12rem;
}

.op-shift-block-live {
    outline-color: rgb(52 211 153 / 0.85);
    box-shadow: 0 0 0 2px rgb(52 211 153 / 0.45), 0 0 24px rgb(16 185 129 / 0.35), 0 8px 22px rgb(0 0 0 / 0.32);
    animation: op-shift-live-pulse 2.4s ease-in-out infinite;
}

@keyframes op-shift-live-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 2px rgb(52 211 153 / 0.35), 0 0 18px rgb(16 185 129 / 0.22), 0 6px 18px rgb(0 0 0 / 0.28);
    }

    50% {
        box-shadow: 0 0 0 3px rgb(52 211 153 / 0.75), 0 0 28px rgb(16 185 129 / 0.5), 0 8px 24px rgb(0 0 0 / 0.32);
    }
}

@media (prefers-reduced-motion: reduce) {
    .op-shift-block-live {
        animation: none;
    }
}

.op-shift-block-badge {
    flex-shrink: 0;
    font-size: 0.52rem;
    line-height: 1.1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6ee7b7;
    margin-bottom: 0.05rem;
}

.op-shift-block-name {
    display: block;
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--op-text, #f8fafc);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.op-shift-day.is-compact .op-shift-block-name {
    font-size: 0.66rem;
}

.op-shift-block-actual .op-shift-block-name {
    font-size: 0.86rem;
    font-weight: 900;
}

.op-shift-block-time {
    font-size: 0.72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--op-text, #f8fafc);
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0.95;
}

.op-shift-block-actual .op-shift-block-time {
    font-size: 0.92rem;
    font-weight: 900;
    opacity: 1;
}

.op-shift-empty {
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    text-align: center;
    padding: 0.2rem 0;
}

@media (max-width: 900px) {
    .op-shift-panel-toolbar {
        align-items: stretch;
        width: 100%;
    }

    .op-shift-period-nav {
        justify-content: space-between;
        width: 100%;
    }

    .op-shift-month-grid,
    .op-shift-month-weekdays {
        min-width: 44rem;
    }
}

.operator-requests-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

@media (min-width: 720px) {
    .operator-requests-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.operator-requests-stat {
    border-radius: 0.75rem;
    border: 1px solid #334155;
    background: #020617;
    padding: 0.65rem 0.75rem;
}

.operator-requests-stat.is-alert {
    border-color: rgb(251 191 36 / 0.55);
    background: rgb(251 191 36 / 0.1);
    box-shadow: 0 0 0 1px rgb(251 191 36 / 0.2);
}

.operator-requests-stat span {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.operator-requests-stat strong {
    display: block;
    margin-top: 0.15rem;
    font-size: 1.35rem;
    color: #f8fafc;
}

.operator-requests-stat.is-alert strong {
    color: #fde68a;
}

.operator-request-row.is-pending {
    background: rgb(251 191 36 / 0.08);
    box-shadow: inset 3px 0 0 #fbbf24;
}

.operator-request-row.is-pending td {
    border-top-color: rgb(251 191 36 / 0.25);
}

.operator-request-direction {
    display: inline-block;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.operator-request-direction-sent {
    background: rgb(100 116 139 / 0.2);
    color: #cbd5e1;
}

.operator-request-direction-received {
    background: rgb(56 189 248 / 0.15);
    color: #7dd3fc;
}

.operator-request-direction-reply {
    background: rgb(167 139 250 / 0.18);
    color: #ddd6fe;
}

.operator-request-pending-badge {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fbbf24;
}

.operator-request-read-badge {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.65rem;
    color: #64748b;
}

.operator-request-subject {
    font-weight: 600;
    color: #f1f5f9;
}

.operator-request-response {
    margin-top: 0.65rem;
    border-radius: 0.65rem;
    border: 1px solid #334155;
    background: #0f172a;
    padding: 0.6rem 0.75rem;
    font-size: 0.82rem;
}

.operator-request-response.is-new {
    border-color: rgb(167 139 250 / 0.45);
    background: rgb(167 139 250 / 0.1);
}

.operator-request-response strong {
    display: block;
    font-size: 0.75rem;
    color: #c4b5fd;
}

.operator-request-response p {
    margin: 0.35rem 0 0;
    color: #e2e8f0;
    line-height: 1.45;
}

.operator-request-outcome {
    margin-top: 0.35rem;
    color: #a5b4fc;
}

.operator-request-ack-form {
    margin-top: 0.65rem;
}

.operator-request-ack-btn {
    border-radius: 0.55rem;
    border: none;
    background: #22d3ee;
    color: #0f172a;
    padding: 0.4rem 0.85rem;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.operator-request-ack-btn:hover {
    background: #67e8f9;
}

.operator-booking-row.needs-payment {
    border-color: rgb(251 191 36 / 0.45);
    box-shadow: inset 3px 0 0 #fbbf24;
}

.booking-pay-badge {
    display: inline-block;
    margin-left: 0.35rem;
    border-radius: 999px;
    padding: 0.12rem 0.5rem;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    vertical-align: middle;
}

.booking-pay-badge-unpaid {
    background: rgb(251 191 36 / 0.2);
    color: #fde68a;
}

.booking-pay-badge-partial {
    background: rgb(251 146 60 / 0.2);
    color: #fdba74;
}

.booking-pay-badge-paid,
.booking-pay-badge-online {
    background: rgb(52 211 153 / 0.15);
    color: #6ee7b7;
}

.booking-pay-open-btn {
    margin-top: 0.5rem;
    border-radius: 0.5rem;
    border: none;
    background: #fbbf24;
    color: #0f172a;
    padding: 0.35rem 0.75rem;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
}

.booking-payment-panel {
    display: none;
    margin-top: 0.65rem;
    padding: 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid #334155;
    background: #0f172a;
}

.booking-payment-panel.is-open,
.booking-payment-panel-done.is-open .booking-payment-form {
    display: block;
}

.booking-payment-panel-done .booking-payment-form {
    display: none;
    margin-top: 0.65rem;
}

.booking-payment-done-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.booking-payment-chip {
    border-radius: 999px;
    background: rgb(52 211 153 / 0.12);
    border: 1px solid rgb(52 211 153 / 0.25);
    padding: 0.15rem 0.5rem;
    font-size: 0.68rem;
    color: #a7f3d0;
}

.booking-payment-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.booking-payment-form-grid {
    display: grid;
    gap: 0.5rem;
}

@media (min-width: 768px) {
    .booking-payment-form-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.booking-payment-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.booking-payment-quick-label {
    flex: 1 1 100%;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.booking-pay-quick {
    padding: 0.38rem 0.65rem;
    border-radius: 0.45rem;
    border: 1px solid #334155;
    background: rgb(15 23 42 / 0.85);
    color: #cbd5e1;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.12s, background 0.12s, color 0.12s;
}

.booking-pay-quick:hover {
    border-color: rgb(34 211 238 / 0.45);
    background: rgb(34 211 238 / 0.1);
    color: #a5f3fc;
}

.booking-payment-split-head {
    margin: 0.5rem 0 0.4rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
}

.booking-payment-split-row {
    display: grid;
    grid-template-columns: minmax(7.5rem, 1fr) minmax(4.75rem, 6rem) 2.35rem;
    gap: 0.45rem 0.5rem;
    align-items: center;
    margin-bottom: 0.45rem;
}

.booking-payment-split-row .booking-pay-label:not([hidden]) {
    grid-column: 1 / -1;
    width: 100%;
}

.booking-payment-split-row .booking-pay-label[hidden] {
    display: none !important;
}

.booking-pay-method,
.booking-pay-amount,
.booking-pay-label {
    min-height: 2.5rem;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    background: #020617;
    padding: 0.45rem 0.55rem;
    font-size: 0.85rem;
    color: #e2e8f0;
}

.booking-pay-remove {
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid #334155;
    border-radius: 0.5rem;
    background: rgb(51 65 85 / 0.35);
    color: #94a3b8;
    font-size: 1.15rem;
    cursor: pointer;
    line-height: 1;
}

.booking-pay-remove:hover {
    border-color: rgb(248 113 113 / 0.45);
    color: #fca5a5;
}

.booking-payment-form-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.booking-pay-add {
    padding: 0.4rem 0.7rem;
    border-radius: 0.45rem;
    border: 1px dashed #475569;
    background: transparent;
    color: #94a3b8;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
}

.booking-pay-add:hover {
    border-color: rgb(34 211 238 / 0.45);
    color: #a5f3fc;
}

.booking-pay-live {
    font-size: 0.82rem;
    font-weight: 700;
    color: #94a3b8;
}

.booking-pay-live.is-complete {
    color: #6ee7b7;
}

.payment-split-block--sale {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.8);
    background: rgb(2 6 23 / 0.55);
}

.sale-pay-split-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 1rem;
}

.sale-pay-split-toolbar .booking-payment-quick {
    flex: 1 1 16rem;
}

.sale-pay-live-box {
    flex: 0 0 auto;
    padding: 0.45rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(34 211 238 / 0.25);
    background: rgb(34 211 238 / 0.08);
}

.sale-pay-live-box .booking-pay-live {
    color: #67e8f9;
    white-space: nowrap;
}

.payment-split-block--sale .booking-payment-split-head {
    margin-top: 0;
}

.payment-split-block--sale .booking-pay-add {
    align-self: flex-start;
}

.sale-pay-grid {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(16rem, 1.35fr);
    gap: 1rem;
    align-items: start;
}

@media (max-width: 820px) {
    .sale-pay-grid {
        grid-template-columns: 1fr;
    }
}

.sale-field-notes {
    margin-top: 0.65rem;
    margin-bottom: 0;
}

.booking-payment-toggle {
    margin-top: 0.35rem;
    color: #67e8f9;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
}

/* ========== Tema chiaro: contrasto componenti operatore / prenotazioni ========== */
html.theme-light .dashboard-hero {
    background:
        radial-gradient(circle at top left, rgb(14 165 233 / 0.2), transparent 38%),
        linear-gradient(135deg, #f0f9ff, #ffffff 55%, #f8fafc) !important;
    border-color: #bae6fd !important;
    color: #0f172a !important;
    box-shadow: 0 12px 32px rgb(15 23 42 / 0.08) !important;
}

html.theme-light .dashboard-hero .eyebrow {
    color: #0369a1 !important;
}

html.theme-light .dashboard-hero h2,
html.theme-light .dashboard-hero p {
    color: #0f172a !important;
}

html.theme-light .dashboard-hero p {
    color: #475569 !important;
}

html.theme-light .text-violet-100,
html.theme-light .text-violet-200 {
    color: #5b21b6 !important;
}

html.theme-light .operator-on-duty-bar {
    border-color: #e2e8f0;
    background: #f8fafc;
}

html.theme-light .operator-on-duty-label {
    color: #334155;
}

html.theme-light .operator-on-duty-badge {
    background: #ecfdf5;
    color: #047857;
}

html.theme-light .operator-on-duty-empty {
    color: #94a3b8;
}

html.theme-light .operator-on-duty-chip {
    border-color: #a7f3d0;
    background: #ecfdf5;
    color: #047857;
}

html.theme-light .operator-sala-picker {
    border-color: #7dd3fc !important;
    background: #e0f2fe !important;
}

html.theme-light .operator-sala-picker-label {
    color: #0c4a6e !important;
}

html.theme-light .operator-sala-picker-hint,
html.theme-light .operator-sala-picker-city {
    color: #475569 !important;
}

html.theme-light .operator-sala-picker-active-badge {
    background: #0c4a6e !important;
    border-color: #0369a1 !important;
    color: #e0f2fe !important;
}

html.theme-light .operator-sala-picker-single strong {
    color: #0f172a !important;
}

html.theme-light .operator-sala-pill {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
}

html.theme-light .operator-sala-pill-name {
    color: #0f172a !important;
}

html.theme-light .operator-sala-pill-city {
    color: #64748b !important;
}

html.theme-light .operator-sala-pill.is-active {
    background: #0369a1 !important;
    border-color: #0284c7 !important;
    box-shadow: 0 4px 14px rgb(3 105 161 / 0.25) !important;
}

html.theme-light .operator-sala-pill.is-active .operator-sala-pill-name,
html.theme-light .operator-sala-pill.is-active .operator-sala-pill-city {
    color: #ffffff !important;
}

html.theme-light .operator-recap-link,
html.theme-light .operator-cal-tab,
html.theme-light .operator-cal-nav-btn,
html.theme-light .operator-booking-filter,
html.theme-light a.rounded-xl.border.border-slate-600,
html.theme-light a.rounded-xl.border-slate-700 {
    border-color: #94a3b8 !important;
    color: #0f172a !important;
    background: #ffffff !important;
}

html.theme-light .operator-cal-tab.is-active,
html.theme-light .operator-cal-nav-today,
html.theme-light .operator-booking-filter.is-active {
    background: #e0f2fe !important;
    border-color: #0284c7 !important;
    color: #0c4a6e !important;
}

html.theme-light .operator-cal-nav-arrow {
    border-color: #94a3b8 !important;
    color: #0f172a !important;
    background: #ffffff !important;
}

html.theme-light .operator-cal-date-wrap {
    background: #ffffff !important;
    border-color: #94a3b8 !important;
}

html.theme-light .operator-cal-period-text {
    color: #0f172a !important;
}

html.theme-light .operator-cal-date-hint {
    color: #64748b !important;
}

html.theme-light .operator-cal-today-link {
    color: #0284c7 !important;
}

html.theme-light .operator-cal-stats strong,
html.theme-light .operator-pren-stat strong {
    color: #0f172a !important;
}

html.theme-light .operator-cal-month-cell {
    background: linear-gradient(180deg, #ffffff, #f8fafc) !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-cal-month-cell.is-outside {
    background: #f1f5f9 !important;
    opacity: 0.75 !important;
}

html.theme-light .operator-cal-month-cell.is-today {
    border-color: #0284c7 !important;
    box-shadow: 0 0 0 1px rgb(2 132 199 / 0.2) !important;
}

html.theme-light .operator-cal-month-cell.is-today .operator-cal-month-daynum {
    color: #0369a1 !important;
    background: #e0f2fe !important;
}

html.theme-light .operator-cal-month-daynum {
    color: #0f172a !important;
}

html.theme-light .operator-cal-month-daynum:hover,
html.theme-light .operator-cal-month-daynum:focus-visible {
    color: #0369a1 !important;
    background: #e2e8f0 !important;
}

html.theme-light .operator-cal-month-wrap {
    background:
        radial-gradient(ellipse 80% 50% at 10% -10%, rgb(34 211 238 / 0.08), transparent 55%),
        linear-gradient(165deg, #ffffff, #f1f5f9) !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-cal-month-pill-title {
    color: #0f172a !important;
}

html.theme-light .operator-cal-month-quickbook {
    border-color: #cbd5e1 !important;
    color: #64748b !important;
    background: #f8fafc !important;
}

html.theme-light .operator-cal-legend {
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-cal-legend-item {
    background: #f8fafc !important;
    border-color: #dbe4f0 !important;
    color: #334155 !important;
}

html.theme-light .operator-cal-event-product {
    color: var(--cal-accent, #0369a1) !important;
}

html.theme-light .operator-cal-month-more-link {
    color: #0284c7 !important;
}

html.theme-light .operator-cal-month-wd {
    color: #64748b !important;
}

html.theme-light .operator-cal-month-wd.is-weekend {
    color: #db2777 !important;
}

html.theme-light .operator-cal-day-column {
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-cal-day-head {
    border-bottom-color: #e2e8f0 !important;
}

html.theme-light .operator-cal-weekday,
html.theme-light .operator-cal-event-room,
html.theme-light .operator-prenotazioni-col-title,
html.theme-light .operator-pren-stat span,
html.theme-light .operator-cal-empty,
html.theme-light .operator-cal-empty-day,
html.theme-light .operator-recap-empty,
html.theme-light .operator-recap-upcoming-label {
    color: #64748b !important;
}

html.theme-light .operator-cal-daynum {
    color: #0f172a !important;
}

html.theme-light .operator-cal-event,
html.theme-light .operator-recap-item {
    color: #0f172a !important;
    box-shadow: 0 4px 12px rgb(15 23 42 / 0.06) !important;
}

html.theme-light .operator-cal-event-time {
    color: #0369a1 !important;
}

html.theme-light .operator-cal-event-body strong,
html.theme-light .operator-recap-body strong {
    color: #0f172a !important;
}

html.theme-light .operator-cal-event-body p,
html.theme-light .operator-recap-body span {
    color: #475569 !important;
}

html.theme-light .operator-cal-event-badge {
    color: #6d28d9 !important;
}

html.theme-light .operator-cal-event-partita {
    border-left: 3px solid #7c3aed !important;
    background: #f5f3ff !important;
}

html.theme-light .operator-cal-filter-form select,
html.theme-light .operator-cal-sede-form select {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

html.theme-light .operator-prenotazioni-hub {
    border-color: #7dd3fc !important;
    background: #f0f9ff !important;
}

html.theme-light .operator-prenotazioni-hub .text-cyan-300,
html.theme-light .operator-prenotazioni-hub .text-xs.uppercase {
    color: #0369a1 !important;
}

html.theme-light .operator-pren-stat {
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-booking-row {
    background: #ffffff !important;
    border-color: var(--cal-border, #cbd5e1) !important;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.8);
}

html.theme-light .operator-booking-time {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .operator-booking-time-hour {
    color: var(--cal-accent, #0369a1) !important;
}

html.theme-light .operator-booking-time-day,
html.theme-light .operator-booking-phone,
html.theme-light .operator-booking-room,
html.theme-light .operator-booking-meta,
html.theme-light .operator-booking-notes,
html.theme-light .operator-booking-notes-block {
    color: #64748b !important;
}

html.theme-light .operator-booking-kicker {
    color: #94a3b8 !important;
}

html.theme-light .operator-booking-customer,
html.theme-light .operator-booking-detail-value {
    color: #0f172a !important;
}

html.theme-light .operator-booking-section + .operator-booking-section,
html.theme-light .operator-booking-detail {
    border-color: #e2e8f0 !important;
}

html.theme-light .operator-booking-section-product {
    background: #f8fafc !important;
}

html.theme-light .operator-booking-section-details .operator-booking-detail:first-child .operator-booking-detail-value,
html.theme-light .operator-booking-product-name {
    color: #0f172a !important;
}

html.theme-light .operator-booking-top strong,
html.theme-light .operator-booking-product {
    color: #0f172a !important;
}

html.theme-light .operator-walkin-col {
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .operator-customer-suggest {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 16px 40px rgb(15 23 42 / .12) !important;
}

html.theme-light .operator-customer-suggest-item span {
    color: #64748b !important;
}

html.theme-light .operator-customer-match {
    background: #f1f5f9 !important;
    border-color: #e2e8f0 !important;
    color: #334155 !important;
}

html.theme-light .operator-walkin-actions {
    border-top-color: #e2e8f0 !important;
}

html.theme-light .operator-walkin-col-title {
    color: #64748b !important;
}

html.theme-light .booking-detail-panel,
html.theme-light .walkin-booking-dialog-panel {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
    box-shadow: 0 18px 48px rgb(15 23 42 / .1) !important;
}

html.theme-light .operator-walkin-studio {
    background: #ffffff !important;
    border: none !important;
    box-shadow: none !important;
}

html.theme-light .walkin-studio-hero {
    background: #f8fafc !important;
    border-bottom-color: #e2e8f0 !important;
}

html.theme-light .walkin-studio-hero-badge {
    background: #f1f5f9 !important;
    border-color: #e2e8f0 !important;
    color: #475569 !important;
}

html.theme-light .walkin-studio-title {
    color: #0f172a !important;
}

html.theme-light .walkin-studio-lead,
html.theme-light .walkin-step-hint {
    color: #64748b !important;
}

html.theme-light .walkin-step {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .walkin-step-title {
    color: #0f172a !important;
}

html.theme-light .walkin-step-num {
    background: #334155 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html.theme-light .walkin-source-pill {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #475569 !important;
}

html.theme-light .walkin-source-pill.is-active,
html.theme-light .walkin-source-pill:has(input:checked) {
    background: #f8fafc !important;
    border-color: #334155 !important;
    color: #0f172a !important;
}

html.theme-light .walkin-input,
html.theme-light .walkin-players-input {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

html.theme-light .walkin-input:focus,
html.theme-light .walkin-players-input:focus {
    border-color: #64748b !important;
    box-shadow: 0 0 0 3px rgb(100 116 139 / .12) !important;
}

html.theme-light .walkin-stepper-btn {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #334155 !important;
}

html.theme-light .walkin-stepper-btn:hover {
    background: #f1f5f9 !important;
    border-color: #94a3b8 !important;
}

html.theme-light .walkin-product-card {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .walkin-product-card-name {
    color: #0f172a !important;
}

html.theme-light .walkin-product-card-price {
    color: #0f172a !important;
}

html.theme-light .walkin-product-card-duration {
    color: #64748b !important;
}

html.theme-light .walkin-product-card-glow {
    display: none !important;
}

html.theme-light .walkin-product-card:hover {
    border-color: #94a3b8 !important;
    transform: none !important;
}

html.theme-light .walkin-product-card.is-selected,
html.theme-light .walkin-product-card:has(.walkin-product-radio:checked) {
    border-color: #334155 !important;
    box-shadow: 0 0 0 1px #334155 !important;
    transform: none !important;
}

html.theme-light .walkin-quick-partita {
    border-color: #e2e8f0 !important;
    color: #64748b !important;
    background: #f8fafc !important;
}

html.theme-light .walkin-submit-btn,
html.theme-light .walkin-open-btn {
    background: #0f172a !important;
    color: #ffffff !important;
    box-shadow: 0 8px 24px rgb(15 23 42 / .14) !important;
}

html.theme-light .walkin-submit-btn:hover,
html.theme-light .walkin-open-btn:hover {
    background: #1e293b !important;
    box-shadow: 0 10px 28px rgb(15 23 42 / .18) !important;
    transform: translateY(-1px) !important;
}

html.theme-light .walkin-submit-icon,
html.theme-light .walkin-open-btn-icon {
    background: rgb(255 255 255 / .12) !important;
}

html.theme-light .operator-partita-panel,
html.theme-light .operator-prenotazione-form-panel {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .operator-partita-panel h3,
html.theme-light .operator-prenotazione-form-panel h3 {
    color: #0f172a !important;
}

html.theme-light .booking-detail-panel .operator-walkin-field,
html.theme-light .booking-detail-panel select.operator-walkin-field,
html.theme-light .booking-detail-panel textarea.operator-walkin-field {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

html.theme-light .booking-detail-panel .operator-walkin-field:focus,
html.theme-light .booking-detail-panel select.operator-walkin-field:focus,
html.theme-light .booking-detail-panel textarea.operator-walkin-field:focus {
    border-color: #64748b !important;
    box-shadow: 0 0 0 3px rgb(100 116 139 / .12) !important;
}

html.theme-light .booking-detail-section-title {
    color: #334155 !important;
}

html.theme-light .booking-detail-form .bg-cyan-400,
html.theme-light .operator-walkin-actions .bg-cyan-400 {
    background: #0f172a !important;
    color: #ffffff !important;
}

html.theme-light .booking-payment-toggle {
    color: #475569 !important;
}

html.theme-light .booking-payment-panel,
html.theme-light .booking-payment-response {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
}

html.theme-light .booking-pay-method,
html.theme-light .booking-pay-amount {
    color: #334155 !important;
}

html.theme-light .op-shift-day {
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
}

html.theme-light .op-shift-block {
    border-color: var(--op-border, #64748b) !important;
}

html.theme-light .op-shift-block-name,
html.theme-light .op-shift-block-time {
    color: var(--op-text, #0f172a) !important;
}

html.theme-light .op-shift-legend-item {
    color: var(--op-text, #0f172a) !important;
    border-color: var(--op-border, #64748b) !important;
}

html.theme-light .op-shift-day-open {
    background: #e0f2fe !important;
    border-color: #7dd3fc !important;
}

html.theme-light .op-shift-day-open-time,
html.theme-light .op-shift-day-hours {
    color: #0369a1 !important;
}

html.theme-light .op-shift-day.is-closed .op-shift-day-hours {
    color: #64748b !important;
}

html.theme-light .op-opening-day {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
}

html.theme-light .op-opening-time {
    color: #0369a1 !important;
}

html.theme-light .users-table-toolbar {
    border-bottom-color: #e2e8f0;
}

html.theme-light .users-search-label {
    color: #64748b;
}

html.theme-light .users-search-field input[type="search"] {
    background: #ffffff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .users-search-count,
html.theme-light .users-search-empty {
    color: #64748b;
}

html.theme-light .operator-requests-stat span {
    color: #ffffff !important;
    font-weight: 700;
}

html.theme-light .operator-requests-stat.is-alert span {
    color: #ffffff !important;
    font-weight: 700;
}

html.theme-light .operator-requests-stat.is-alert strong {
    color: #fde68a !important;
}

html.theme-light .operator-request-subject {
    color: #0f172a !important;
}

html.theme-light .operator-request-row .text-slate-400 {
    color: #475569 !important;
}

html.theme-light .operator-request-response {
    border-color: #c4b5fd;
    background: #f5f3ff;
}

html.theme-light .operator-request-response.is-new {
    border-color: #a78bfa;
    background: #ede9fe;
}

html.theme-light .operator-request-response strong {
    color: #5b21b6 !important;
}

html.theme-light .operator-request-response p {
    color: #334155 !important;
}

html.theme-light .operator-request-outcome {
    color: #6d28d9 !important;
}

html.theme-light .operator-request-outcome em {
    color: #5b21b6;
}

html.theme-light .bg-slate-950,
html.theme-light .rounded-xl.border.border-slate-800.bg-slate-950,
html.theme-light input.bg-slate-950,
html.theme-light select.bg-slate-950,
html.theme-light textarea.bg-slate-950 {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
}

html.theme-light header.bg-slate-950 {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .text-amber-100 {
    color: #78350f !important;
}

html.theme-light .border-cyan-500\/30.bg-cyan-500\/10 .text-sm.text-cyan-200 {
    color: #0369a1 !important;
}

html.theme-light .border-cyan-500\/30.bg-cyan-500\/10 .text-3xl.font-bold {
    color: #0f172a !important;
}

/* Preventivo personalizzato operatore sala */
.operator-quote-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.operator-quote-open-btn {
    border: 0;
    border-radius: 12px;
    padding: 0.75rem 1.25rem;
    font-weight: 700;
    cursor: pointer;
    background: #34d399;
    color: #022c22;
}

.operator-quote-open-btn:hover {
    filter: brightness(1.05);
}

.quote-history-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0;
    border-top: 1px solid #1e293b;
}

.quote-send-dialog {
    width: min(720px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    margin: auto;
    padding: 0;
    border: 1px solid #334155;
    border-radius: 20px;
    background: #0f172a;
    color: #e2e8f0;
}

.quote-send-dialog::backdrop {
    background: rgba(2, 6, 23, 0.72);
}

.quote-send-form {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 2rem);
}

.quote-send-header,
.quote-send-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #1e293b;
}

.quote-send-footer {
    border-bottom: 0;
    border-top: 1px solid #1e293b;
    flex-wrap: wrap;
}

.quote-send-close {
    border: 0;
    background: transparent;
    color: #94a3b8;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}

.quote-send-grid {
    display: grid;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    overflow: auto;
    grid-template-columns: 1fr;
}

.quote-send-grid .operator-customer-field {
    position: relative;
}

.quote-send-grid .operator-customer-match {
    margin-top: 0;
}

.quote-customer-hint {
    margin: 0;
    line-height: 1.45;
}

.quote-card-profile {
    display: inline-flex;
    margin-top: 0.5rem;
}

@media (min-width: 640px) {
    .quote-send-grid {
        grid-template-columns: 1fr 1fr;
    }
    .quote-send-grid .md\:col-span-2 {
        grid-column: span 2;
    }
}

.quote-lines-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 220px;
    overflow: auto;
}

.quote-line-row {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.5rem 0.75rem;
    align-items: center;
    padding: 0.5rem 0.65rem;
    border-radius: 10px;
    border: 1px solid #1e293b;
    background: #020617;
    cursor: pointer;
}

.quote-line-qty {
    width: 4rem;
    padding: 0.35rem 0.5rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #0f172a;
    color: #e2e8f0;
}

.quote-line-price {
    font-size: 0.85rem;
    color: #67e8f9;
    white-space: nowrap;
}

.quote-total-preview {
    font-size: 1.05rem;
    color: #cbd5e1;
}

.quote-total-preview strong {
    color: #6ee7b7;
    font-size: 1.25rem;
}

.quote-send-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.quote-send-title {
    margin: 0.35rem 0 0;
    font-size: 1.35rem;
    font-weight: 700;
}

.quote-send-room-badge {
    display: inline-flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.5rem;
    border-radius: 12px;
    border: 1px solid #22d3ee55;
    background: linear-gradient(135deg, #0c4a6e33, #020617);
}

.quote-send-room-kicker {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #67e8f9;
}

.quote-send-room-badge strong {
    font-size: 1rem;
    color: #f0f9ff;
}

.quote-send-room-city {
    font-size: 0.85rem;
    color: #94a3b8;
    font-weight: 500;
}

.quote-send-sender {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: #94a3b8;
}

.quote-send-sender strong {
    color: #e2e8f0;
}

.quote-section {
    border: 1px solid #1e293b;
    border-radius: 14px;
    padding: 1rem 1.1rem;
    background: #020617;
}

.quote-section-head {
    margin-bottom: 0.75rem;
}

.quote-section-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #f1f5f9;
}

.quote-section-lead {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.4;
}

.quote-section--manual {
    border-color: #34d39944;
    background: linear-gradient(180deg, #022c2218, #020617);
}

.quote-manual-disclosure {
    padding: 0;
    overflow: hidden;
}

.quote-manual-disclosure:not([open]) {
    padding-bottom: 0;
}

.quote-manual-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1.1rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.quote-manual-summary::-webkit-details-marker {
    display: none;
}

.quote-manual-summary-text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    text-align: left;
}

.quote-manual-summary .quote-section-title {
    font-size: 0.92rem;
}

.quote-manual-summary .quote-section-lead {
    margin: 0;
    font-size: 0.72rem;
}

.quote-manual-chevron {
    flex-shrink: 0;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 8px;
    border: 1px solid #34d39955;
    background: #34d39914;
    position: relative;
}

.quote-manual-chevron::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 46%;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid #6ee7b7;
    border-bottom: 2px solid #6ee7b7;
    transform: translate(-50%, -60%) rotate(45deg);
    transition: transform 0.2s ease;
}

.quote-manual-disclosure[open] .quote-manual-chevron::before {
    transform: translate(-50%, -30%) rotate(-135deg);
}

.quote-manual-disclosure[open] .quote-manual-summary {
    border-bottom: 1px solid #34d39933;
}

.quote-manual-body {
    padding: 0 1.1rem 1rem;
}

.quote-manual-body-lead {
    margin: 0.65rem 0 0.85rem;
}

.quote-forfait-block {
    display: grid;
    gap: 0.75rem;
}

.quote-manual-lines {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.quote-manual-row {
    display: grid;
    grid-template-columns: 1fr auto 5.5rem;
    gap: 0.5rem;
    align-items: center;
}

.quote-manual-label {
    min-width: 0;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #0f172a;
    color: #e2e8f0;
}

.quote-manual-qty {
    width: 3.5rem;
    padding: 0.45rem 0.5rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #0f172a;
    color: #e2e8f0;
}

.quote-manual-price {
    width: 100%;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #0f172a;
    color: #e2e8f0;
}

.quote-manual-add-btn {
    margin-top: 0.5rem;
    border: 1px dashed #34d39966;
    border-radius: 10px;
    padding: 0.45rem 0.85rem;
    background: transparent;
    color: #6ee7b7;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.quote-manual-add-btn:hover {
    background: #34d39914;
}

html.theme-light .quote-send-dialog {
    background: #ffffff;
    color: #0f172a;
    border-color: #cbd5e1;
}

html.theme-light .quote-line-row {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .quote-send-room-badge {
    border-color: #0891b266;
    background: linear-gradient(135deg, #ecfeff, #f8fafc);
}

html.theme-light .quote-send-room-badge strong {
    color: #0f172a;
}

html.theme-light .quote-section {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .quote-section--manual {
    border-color: #34d39955;
    background: #ecfdf5;
}

html.theme-light .quote-manual-chevron {
    border-color: #34d39966;
    background: #d1fae5;
}

html.theme-light .quote-manual-chevron::before {
    border-color: #059669;
}

html.theme-light .quote-manual-label,
html.theme-light .quote-manual-qty,
html.theme-light .quote-manual-price {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

/* Pipeline vendita preventivi */
.quotes-board {
    grid-template-columns: repeat(3, minmax(260px, 1fr));
}

.quotes-pipeline-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.quotes-pipeline-back {
    border-radius: 12px;
    padding: 0.75rem 1.1rem;
    font-weight: 700;
    background: #34d399;
    color: #022c22;
    text-decoration: none;
    border: none;
    cursor: pointer;
    font-size: inherit;
    font-family: inherit;
    display: inline-block;
}

button.quotes-pipeline-back:hover {
    filter: brightness(1.05);
}

.quotes-pipeline-back--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.operator-quote-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.operator-quote-pipeline-link {
    border-radius: 12px;
    padding: 0.75rem 1rem;
    font-weight: 600;
    border: 1px solid #34d39966;
    color: #6ee7b7;
    text-decoration: none;
}

.quote-pipeline-badge {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #1e293b;
    color: #cbd5e1;
}

.quote-stage-sent .quote-pipeline-badge {
    background: #1e3a5f;
    color: #93c5fd;
}

.quote-stage-processed .quote-pipeline-badge {
    background: #422006;
    color: #fcd34d;
}

.quote-stage-paid .quote-pipeline-badge {
    background: #064e3b;
    color: #6ee7b7;
}

.quote-stage-cancelled .quote-pipeline-badge {
    background: #3f1d2e;
    color: #fda4af;
}

.quotes-archive {
    margin-top: 1.5rem;
    padding: 1rem 1.25rem 1.25rem;
    border-radius: 16px;
    border: 1px solid #47556966;
    border-top: 2px solid #64748b;
    background: linear-gradient(180deg, #0f172a88, #020617);
}

.quotes-archive-head {
    margin-bottom: 0.85rem;
}

.quotes-archive-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.quotes-archive-lead {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.quotes-archive-list {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.quotes-archive-list .quote-card {
    margin-bottom: 0;
    opacity: 0.92;
    border-color: #334155;
}

.quote-card-services {
    font-size: 0.82rem;
    color: #94a3b8;
    margin: 0.35rem 0 0;
}

.quote-detail-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.quote-detail-summary span {
    display: block;
    font-size: 0.75rem;
    color: #94a3b8;
}

.quote-detail-items {
    margin: 0 0 1rem;
    padding-left: 1.1rem;
    color: #cbd5e1;
}

.quote-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.75rem;
}

.quote-update-form {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    min-width: min(100%, 14rem);
}

.quote-delete-form {
    margin: 0;
}

.quote-detail-actions .quote-update-form select,
.quote-detail-actions .quote-update-form input[name="sales_notes"] {
    flex: 1;
    min-width: 6rem;
}

.quote-quick-btn {
    border: 0;
    border-radius: 10px;
    padding: 0.45rem 0.85rem;
    font-weight: 700;
    cursor: pointer;
    background: #f59e0b;
    color: #1c1917;
}

.quote-quick-paid {
    background: #34d399;
    color: #022c22;
}

@media (max-width: 1100px) {
    .quotes-board {
        grid-template-columns: 1fr;
    }
}

html.theme-light .quotes-archive {
    background: linear-gradient(180deg, #f1f5f9, #fff);
    border-color: #cbd5e1;
    border-top-color: #94a3b8;
}

html.theme-light .quotes-archive-title {
    color: #64748b;
}

/* Selettore sala Home — stesso stile timbratura per Roma, Pisa, Torino, ecc. */
.home-staff-sala,
.operator-home-sala {
    position: relative;
    margin-bottom: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 1.25rem;
    border: 1px solid rgb(34 211 238 / 0.28);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.08) 0%, rgb(15 23 42 / 0.88) 100%);
    box-shadow: 0 10px 32px rgb(2 6 23 / 0.22);
    overflow: hidden;
}

.operator-home-sala--single {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
}

.operator-home-sala-kicker,
.operator-home-sala-card-role {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #67e8f9;
}

.operator-home-sala-name,
.operator-home-sala-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #f1f5f9;
}

.operator-home-sala-city,
.operator-home-sala-card-city {
    font-size: 0.8rem;
    color: #94a3b8;
}

.operator-home-sala-head {
    margin-bottom: 0.75rem;
}

.operator-home-sala-hint {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.45;
}

.operator-home-sala-hint.is-warn {
    color: #fcd34d;
}

.operator-home-sala-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: 0.65rem;
}

.operator-home-sala-card {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.9);
    background: rgb(2 6 23 / 0.55);
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s;
}

a.operator-home-sala-card:hover {
    border-color: rgb(34 211 238 / 0.55);
}

.operator-home-sala-card.is-active {
    border-color: rgb(34 211 238 / 0.75);
    background: rgb(34 211 238 / 0.12);
}

.operator-home-sala-card-name {
    font-size: 1rem;
    color: #e2e8f0;
}

.operator-home-sala-card-badge {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #a5f3fc;
}

.operator-home-sala-card-cta {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #67e8f9;
}

/* legacy alias — usa pageHeroHtml + dashboard-hero */
.important-docs-intro {
    margin-bottom: 1.25rem;
}

.important-doc-flash {
    margin-bottom: 0.85rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    font-size: 0.88rem;
}

.important-doc-flash.ok {
    border: 1px solid rgb(52 211 153 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
}

.important-doc-flash.err {
    border: 1px solid rgb(248 113 113 / 0.4);
    background: rgb(239 68 68 / 0.1);
    color: #fecaca;
}

.important-doc-readonly {
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: rgb(15 23 42 / 0.45);
    font-size: 0.85rem;
    color: #94a3b8;
}

.catalog-public-limits {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.45rem 0.55rem;
    flex: 1 1 100%;
    padding: 0.5rem 0.65rem 0.55rem;
    border-radius: 0.5rem;
    border: 1px dashed rgba(34, 211, 238, 0.25);
    background: rgba(34, 211, 238, 0.04);
}

.catalog-public-limits-title {
    flex: 1 1 100%;
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #67e8f9;
}

.catalog-public-limits-hint {
    flex: 1 1 100%;
    margin: -0.15rem 0 0.1rem;
    font-size: 0.72rem;
    line-height: 1.35;
    color: #64748b;
}

.catalog-field-time input[type="time"] {
    min-width: 6.5rem;
    padding: 0.35rem 0.45rem;
}

.catalog-public-limits[hidden] {
    display: none !important;
}

.catalog-field[data-catalog-duration-wrap][hidden],
.catalog-field-scheduling[hidden] {
    display: none !important;
}

/* —— Report sala (operatori / responsabili) —— */
.room-report {
    max-width: 72rem;
    margin: 0 auto;
}

.room-report-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
    padding: 1.25rem 1.35rem;
    border-radius: 1rem;
    border: 1px solid rgb(34 211 238 / 0.22);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.08) 0%, rgb(15 23 42 / 0.6) 55%);
}

.room-report-back {
    display: inline-block;
    margin-bottom: 0.35rem;
    font-size: 0.8rem;
    color: #67e8f9;
    text-decoration: none;
}

.room-report-back:hover {
    text-decoration: underline;
}

.room-report-kicker {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.room-report-title {
    margin: 0.15rem 0 0;
    font-size: 1.65rem;
    font-weight: 700;
    color: #f1f5f9;
}

.room-report-lead {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: #94a3b8;
}

.room-report-range {
    color: #cbd5e1;
}

.room-report-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.room-report-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    border-radius: 0.65rem;
    font-size: 0.8125rem;
    font-weight: 600;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    background: transparent;
    color: #e2e8f0;
}

.room-report-btn--primary {
    background: #22d3ee;
    color: #0f172a;
    border-color: #22d3ee;
}

.room-report-btn--muted {
    border-color: #334155;
    background: #0f172a;
}

.room-report-btn--ghost {
    border-color: #475569;
}

.room-report-filters {
    margin-bottom: 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid #1e293b;
    background: #0f172a;
}

.room-report-period-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.85rem;
}

.room-report-period-chip {
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid #334155;
    background: #020617;
    color: #94a3b8;
    text-decoration: none;
}

.room-report-period-chip.is-active,
.room-report-period-chip:hover {
    border-color: rgb(34 211 238 / 0.5);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
}

.room-report-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: 0.55rem 0.75rem;
    align-items: end;
}

.room-report-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
}

.room-report-field input,
.room-report-field select {
    border-radius: 0.5rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.4rem 0.55rem;
    font-size: 0.8125rem;
}

.room-report-kpis {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.65rem;
    margin-bottom: 1.35rem;
}

@media (min-width: 720px) {
    .room-report-kpis {
        grid-template-columns: repeat(4, 1fr);
    }
}

.room-report-kpi {
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: #0f172a;
}

.room-report-kpi--highlight {
    border-color: rgb(34 211 238 / 0.45);
    background: linear-gradient(160deg, rgb(34 211 238 / 0.14), #0f172a);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.08);
}

.room-report-kpi-delta {
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    vertical-align: middle;
}

.room-report-kpi-delta.is-up { color: #4ade80; }
.room-report-kpi-delta.is-down { color: #f87171; }

.room-report-tipo-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.room-report-tipo-chip {
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    border: 1px solid #334155;
    background: #020617;
    color: #94a3b8;
    text-decoration: none;
}

.room-report-tipo-chip.is-active,
.room-report-tipo-chip:hover {
    border-color: rgb(167 139 250 / 0.5);
    background: rgb(167 139 250 / 0.12);
    color: #ddd6fe;
}

.room-report-dashboard {
    margin-bottom: 1.5rem;
    padding: 1.1rem 1.15rem 1.2rem;
    border-radius: 1rem;
    border: 1px solid rgb(34 211 238 / 0.2);
    background: linear-gradient(180deg, rgb(15 23 42 / 0.85) 0%, rgb(2 6 23 / 0.65) 100%);
}

.room-report-dashboard-head {
    margin-bottom: 1rem;
}

.room-report-dashboard-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #f1f5f9;
}

.room-report-dashboard-lead {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.45;
    max-width: 40rem;
}

.room-report-empty-banner {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px dashed rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.06);
    font-size: 0.85rem;
    color: #cbd5e1;
    line-height: 1.5;
}

.room-report-empty-banner p {
    margin: 0 0 0.35rem;
}

.room-report-empty-banner-hint {
    color: #94a3b8 !important;
    font-size: 0.78rem !important;
}

.room-report-empty-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.room-report-analytics-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 900px) {
    .room-report-analytics-grid {
        grid-template-columns: minmax(14rem, 16rem) 1fr;
        align-items: start;
    }
}

.room-report-analytics-main {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.room-report-section--mix {
    margin-bottom: 0;
}

.room-report-mix-list {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.room-report-mix-row {
    display: grid;
    grid-template-columns: 5.5rem 1fr auto;
    grid-template-rows: auto auto;
    gap: 0.2rem 0.5rem;
    align-items: center;
    padding: 0.45rem 0.5rem;
    border-radius: 0.55rem;
    background: rgb(15 23 42 / 0.55);
    border: 1px solid #1e293b;
}

.room-report-mix-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: #e2e8f0;
    grid-row: 1 / 3;
}

.room-report-mix-bar {
    grid-column: 2;
    height: 5px;
    border-radius: 3px;
    background: #1e293b;
    overflow: hidden;
    align-self: center;
}

.room-report-mix-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #818cf8, #22d3ee);
    border-radius: 3px;
}

.room-report-mix-value {
    font-size: 0.82rem;
    font-weight: 800;
    color: #a5f3fc;
    white-space: nowrap;
}

.room-report-mix-meta {
    grid-column: 2 / 4;
    font-size: 0.65rem;
    color: #64748b;
}

.room-report-mix-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.room-report-mix-row--link {
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.room-report-mix-row--link:hover {
    border-color: rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.06);
}

.room-report-mix-row--link.is-active {
    border-color: rgb(34 211 238 / 0.55);
    background: rgb(34 211 238 / 0.1);
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.12);
}

.room-report-exp-badge {
    display: inline-block;
    max-width: 100%;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.3;
    border: 1px solid var(--cal-border, #334155);
    background: var(--cal-bg, rgb(15 23 42 / 0.8));
    color: var(--cal-accent-soft, #e2e8f0);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.room-report-section--experience .room-report-mix-label {
    grid-row: auto;
    align-self: center;
}

.room-report-section--payments {
    padding-top: 0.25rem;
    border-top: 1px solid #1e293b;
}

.room-report-section.is-muted {
    opacity: 0.85;
}

.room-report-kpi--warn {
    border-color: rgb(251 191 36 / 0.35);
    background: rgb(251 191 36 / 0.06);
}

.room-report-kpi-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.room-report-kpi-value {
    display: block;
    margin-top: 0.2rem;
    font-size: 1.45rem;
    font-weight: 700;
    color: #f8fafc;
}

.room-report-kpi-hint {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    color: #64748b;
}

.room-report-section {
    margin-bottom: 1.5rem;
}

.room-report-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.room-report-section-title {
    margin: 0 0 0.65rem;
    font-size: 1rem;
    font-weight: 700;
    color: #e2e8f0;
}

.room-report-section-meta {
    font-size: 0.75rem;
    color: #64748b;
}

.room-report-pay-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.6rem;
}

.room-report-pay-card {
    position: relative;
    padding: 0.75rem 0.85rem 1.1rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: #020617;
    overflow: hidden;
}

.room-report-pay-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.room-report-pay-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
}

.room-report-pay-value {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    color: #f1f5f9;
}

.room-report-pay-pct {
    font-size: 0.68rem;
    color: #64748b;
}

.room-report-pay-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: #1e293b;
}

.room-report-pay-bar span {
    display: block;
    height: 100%;
    background: #22d3ee;
    border-radius: 0 2px 0 0;
}

.room-report-pay-card--cash .room-report-pay-bar span { background: #4ade80; }
.room-report-pay-card--card .room-report-pay-bar span { background: #60a5fa; }
.room-report-pay-card--transfer .room-report-pay-bar span { background: #a78bfa; }
.room-report-pay-card--website .room-report-pay-bar span { background: #22d3ee; }
.room-report-pay-card--satispay .room-report-pay-bar span { background: #fb923c; }

.room-report-table-wrap {
    overflow-x: auto;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: #0f172a;
}

.room-report-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.room-report-table th {
    padding: 0.55rem 0.75rem;
    text-align: left;
    font-weight: 600;
    color: #64748b;
    border-bottom: 1px solid #1e293b;
    white-space: nowrap;
}

.room-report-table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #1e293b;
    vertical-align: top;
    color: #cbd5e1;
}

.room-report-row:hover td {
    background: rgb(51 65 85 / 0.25);
}

.room-report-sub {
    display: block;
    font-size: 0.72rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.room-report-type {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: #1e293b;
    color: #94a3b8;
}

.room-report-type--partita {
    background: rgb(167 139 250 / 0.15);
    color: #c4b5fd;
}

.room-report-type--vendita {
    background: rgb(251 191 36 / 0.12);
    color: #fcd34d;
}

.room-report-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.room-report-chip {
    display: inline-block;
    padding: 0.12rem 0.4rem;
    border-radius: 0.35rem;
    font-size: 0.68rem;
    background: #1e293b;
    color: #e2e8f0;
}

.room-report-chip.is-warn {
    background: rgb(251 191 36 / 0.15);
    color: #fcd34d;
}

.room-report-chip.is-muted {
    color: #64748b;
}

.room-report-status {
    font-size: 0.72rem;
    font-weight: 600;
}

.room-report-status.is-paid { color: #4ade80; }
.room-report-status.is-partial { color: #fcd34d; }
.room-report-status.is-unpaid { color: #f87171; }

.room-report-empty {
    padding: 2rem !important;
    text-align: center;
    color: #64748b;
}

.room-report-insights {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    gap: 0.65rem;
    margin-bottom: 1.15rem;
}

.room-report-insight-card {
    position: relative;
    padding: 0.85rem 1rem 0.85rem 2.6rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: linear-gradient(145deg, #0f172a 0%, #020617 100%);
}

.room-report-insight-icon {
    position: absolute;
    left: 0.75rem;
    top: 0.85rem;
    font-size: 1.1rem;
    line-height: 1;
    opacity: 0.9;
}

.room-report-insight-card--hero {
    border-color: rgb(34 211 238 / 0.35);
    background: linear-gradient(145deg, rgb(34 211 238 / 0.08) 0%, #020617 55%);
}

.room-report-insight-kicker {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.room-report-insight-value {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: #f1f5f9;
    line-height: 1.35;
    word-break: break-word;
}

.room-report-insight-hint {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    color: #64748b;
}

.room-report-insight-delta {
    display: inline-block;
    margin-top: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
}

.room-report-insight-delta.is-up { color: #4ade80; }
.room-report-insight-delta.is-down { color: #f87171; }

.room-report-section-lead {
    margin: -0.35rem 0 0.75rem;
    font-size: 0.78rem;
    color: #64748b;
}

.room-report-empty-inline {
    margin: 0;
    font-size: 0.85rem;
    color: #64748b;
}

.room-report-rank-list {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.room-report-rank-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem;
    align-items: center;
    padding: 0.55rem 0.65rem;
    border-radius: 0.6rem;
    border: 1px solid #1e293b;
    background: #0f172a;
}

.room-report-rank-pos {
    font-size: 0.75rem;
    font-weight: 800;
    color: #22d3ee;
    min-width: 1.5rem;
}

.room-report-rank-head strong {
    display: block;
    font-size: 0.88rem;
    color: #f1f5f9;
}

.room-report-rank-meta {
    font-size: 0.68rem;
    color: #64748b;
}

.room-report-rank-bar {
    margin-top: 0.35rem;
    height: 4px;
    border-radius: 2px;
    background: #1e293b;
    overflow: hidden;
}

.room-report-rank-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #22d3ee, #818cf8);
    border-radius: 2px;
}

.room-report-rank-value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #e2e8f0;
    white-space: nowrap;
}

.room-report-charts-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 900px) {
    .room-report-charts-duo {
        grid-template-columns: 1fr;
    }
}

.room-report-section--chart {
    padding: 1rem 1.1rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
    background: #020617;
}

.room-report-section--wide {
    grid-column: 1 / -1;
}

.room-report-hour-chart,
.room-report-wd-chart,
.room-report-day-chart {
    display: flex;
    align-items: flex-end;
    gap: 0.35rem;
    min-height: 9rem;
    padding: 0.5rem 0 0;
}

.room-report-hour-col,
.room-report-wd-col,
.room-report-day-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.room-report-hour-col.is-peak .room-report-hour-bar,
.room-report-wd-col.is-peak .room-report-wd-bar,
.room-report-day-col.is-peak .room-report-day-bar {
    background: linear-gradient(180deg, #22d3ee, #818cf8);
    box-shadow: 0 0 12px rgb(34 211 238 / 0.45);
}

.room-report-hour-bar-wrap,
.room-report-wd-bar-wrap,
.room-report-day-bar-wrap {
    width: 100%;
    height: 7rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.room-report-hour-bar,
.room-report-wd-bar,
.room-report-day-bar {
    width: 72%;
    max-width: 2rem;
    min-height: 3px;
    border-radius: 4px 4px 0 0;
    background: #334155;
    transition: height 0.2s ease;
}

.room-report-hour-label,
.room-report-wd-label,
.room-report-day-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: #94a3b8;
}

.room-report-hour-meta {
    font-size: 0.6rem;
    color: #64748b;
}

.operator-report-teaser {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid rgb(34 211 238 / 0.28);
    background: linear-gradient(100deg, rgb(34 211 238 / 0.1), rgb(15 23 42 / 0.85));
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, transform 0.15s;
}

.operator-report-teaser:hover {
    border-color: rgb(34 211 238 / 0.55);
    transform: translateY(-1px);
}

.operator-report-teaser-icon {
    font-size: 1.75rem;
    line-height: 1;
}

.operator-report-teaser-body {
    flex: 1;
    min-width: 0;
}

.operator-report-teaser-body strong {
    display: block;
    font-size: 1.05rem;
    color: #f1f5f9;
}

.operator-report-teaser-body span {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #94a3b8;
}

.operator-report-teaser-cta {
    font-size: 0.85rem;
    font-weight: 700;
    color: #22d3ee;
}

html.theme-light .room-report-hero {
    background: linear-gradient(135deg, rgb(34 211 238 / 0.12), #fff);
    border-color: #cbd5e1;
}

html.theme-light .room-report-title,
html.theme-light .room-report-kpi-value,
html.theme-light .room-report-pay-value {
    color: #0f172a;
}

html.theme-light .room-report-filters,
html.theme-light .room-report-kpi,
html.theme-light .room-report-pay-card,
html.theme-light .room-report-table-wrap {
    background: #fff;
    border-color: #e2e8f0;
}

html.theme-light .room-report-field input,
html.theme-light .room-report-field select {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #0f172a;
}

/* === VRC session styles (walk-in, griglia, cassa, area clienti) === */
/**
 * Stili aggiunti dopo sessioni recenti — caricati dopo app.css.
 * Recupero da sovrascrittura accidentale del file principale.
 */

/* —— Walk-in compatto —— */
.walkin-booking-dialog--compact {
    width: min(860px, calc(100vw - 1rem));
    max-height: calc(100vh - 1rem);
}

.walkin-booking-dialog--compact .walkin-booking-dialog-panel.request-detail-panel {
    padding: 1rem 1.15rem 1.1rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(165deg, rgb(15 23 42 / 0.98), rgb(2 6 23 / 0.98));
    box-shadow: 0 24px 60px rgb(0 0 0 / 0.45);
}

html.theme-light .walkin-booking-dialog--compact .walkin-booking-dialog-panel.request-detail-panel {
    background: #ffffff;
    border-color: #dbe4f0;
    box-shadow: 0 18px 48px rgb(15 23 42 / 0.12);
}

.operator-walkin-studio--compact {
    padding: 0;
}

.walkin-compact-head {
    margin-bottom: 0.65rem;
    padding-right: 2rem;
}

.walkin-compact-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #f8fafc;
}

.walkin-compact-lead {
    margin: 0.2rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
}

.walkin-compact-form {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.walkin-compact-row {
    display: grid;
    gap: 0.45rem;
    align-items: end;
}

.walkin-compact-row--client {
    grid-template-columns: 1.4fr 0.75fr 0.9fr auto;
}

.walkin-compact-row--schedule {
    grid-template-columns: minmax(9.5rem, 1.2fr) minmax(8.25rem, 1fr) minmax(8.5rem, max-content) minmax(4.5rem, 5rem);
}

.walkin-compact-row--footer {
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 0.5rem;
}

.walkin-source-inline {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.35rem;
    align-self: end;
}

.walkin-source-chip {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    cursor: pointer;
    white-space: nowrap;
}

.walkin-source-chip.is-active {
    color: #a5f3fc;
}

.walkin-source-chip input {
    accent-color: #22d3ee;
}

.walkin-compact-product .walkin-product-search {
    margin-bottom: 0.35rem;
}

.walkin-compact-product .walkin-product-select {
    width: 100%;
    font-size: 0.8rem;
}

.operator-customer-match--compact {
    display: inline-flex;
    width: auto;
    max-width: 100%;
    margin: 0.15rem 0 0.1rem;
    font-size: 0.75rem;
    padding: 0.35rem 0.55rem;
}

.walkin-players-stepper--compact {
    display: grid;
    grid-template-columns: 2.25rem minmax(2.5rem, 1fr) 2.25rem;
    gap: 0.25rem;
    align-items: stretch;
    min-height: 2.75rem;
}

.walkin-players-stepper--compact .walkin-stepper-btn {
    position: relative;
    z-index: 2;
    min-height: 2.75rem;
    border-radius: 0.65rem;
    font-size: 1.25rem;
    pointer-events: auto;
    cursor: pointer;
}

.walkin-players-stepper--compact .walkin-players-input {
    min-height: 2.75rem;
    border-radius: 0.65rem;
    font-size: 1.15rem;
}

.walkin-pricing--compact {
    padding: 0.55rem 0.65rem;
    border-radius: 0.65rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.5);
}

.walkin-pricing-compact-main {
    display: grid;
    grid-template-columns: minmax(5.5rem, 1.1fr) minmax(5rem, 0.95fr) minmax(3.25rem, 0.65fr) minmax(3.75rem, 0.75fr) minmax(5.5rem, 1fr);
    gap: 0.5rem;
    align-items: end;
}

.walkin-pricing-compact-main .walkin-field-label {
    font-size: 0.62rem;
}

.walkin-submit-btn--compact {
    padding: 0.55rem 1.1rem;
    border-radius: 0.65rem;
    border: none;
    background: linear-gradient(135deg, #22d3ee, #06b6d4);
    color: #0f172a;
    font-weight: 800;
    font-size: 0.9rem;
    cursor: pointer;
    white-space: nowrap;
}

.walkin-quick-partita--compact {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0.45rem 0.6rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    border-radius: 0.55rem;
    background: rgb(15 23 42 / 0.45);
    font-size: 0.75rem;
    color: #94a3b8;
    white-space: nowrap;
    cursor: pointer;
}

.walkin-compact-form .walkin-input {
    padding: 0.55rem 0.7rem;
    font-size: 0.92rem;
    border-radius: 0.65rem;
    border-width: 1px;
    min-height: 2.75rem;
}

.walkin-compact-form .walkin-input-time,
.walkin-compact-form .walkin-vr-time-slot,
.walkin-compact-form .walkin-general-time-slot,
.walkin-compact-form [data-time-field-wrap] select {
    width: 100%;
    min-width: 7rem;
    min-height: 2.75rem !important;
    font-size: 0.95rem !important;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.5rem 2rem 0.5rem 0.65rem;
    appearance: auto;
}

.walkin-compact-form [data-time-field-wrap] {
    width: 100%;
    min-width: 0;
}

.walkin-compact-form .walkin-field-time {
    min-width: 0;
}

.walkin-compact-form .walkin-time-slot-note {
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    opacity: 0.85;
}

.walkin-compact-form .walkin-date-trigger {
    min-height: 2.75rem;
    padding: 0.55rem 0.7rem;
    font-size: 0.88rem;
}

.walkin-compact-form .walkin-field-duration .walkin-input {
    text-align: center;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.walkin-compact-product .walkin-product-select {
    min-height: 2.85rem;
    font-size: 0.92rem;
    font-weight: 700;
}

.walkin-product-detail {
    margin: 0.4rem 0 0;
    padding: 0.45rem 0.6rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(34 211 238 / 0.22);
    background: linear-gradient(90deg, rgb(34 211 238 / 0.08), rgb(15 23 42 / 0.35));
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.4;
    color: #cbd5e1;
}

.walkin-compact-product .walkin-product-select option {
    font-weight: 600;
    padding: 0.35rem 0.25rem;
}

.walkin-free-form-note--compact {
    margin: 0;
    font-size: 0.75rem;
    color: #fcd34d;
}

@media (max-width: 720px) {
    .walkin-compact-row--client,
    .walkin-compact-row--schedule,
    .walkin-compact-row--footer,
    .walkin-pricing-compact-main {
        grid-template-columns: 1fr;
    }
}

/* Suggerimenti cliente — non bloccare il form */
.operator-customer-suggest {
    display: none;
    pointer-events: auto;
}

.operator-customer-suggest:not([hidden]),
.operator-customer-suggest.is-open {
    display: grid !important;
}

.operator-customer-suggest.is-floating {
    position: fixed;
    left: 0;
    right: auto;
    top: 0;
    width: max(12rem, 16rem);
    max-height: min(16rem, 42vh);
    z-index: 10050;
}

.operator-customer-suggest:empty {
    display: none !important;
    padding: 0;
    border: none;
    box-shadow: none;
}

.operator-customer-suggest-row {
    display: flex;
    align-items: stretch;
}

.operator-customer-suggest-row .operator-customer-suggest-item {
    flex: 1;
    border: 0;
    border-radius: 0;
}

.operator-customer-suggest-profile {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.65rem;
    border-left: 1px solid #334155;
    font-size: 0.72rem;
    font-weight: 700;
    color: #a5f3fc;
    text-decoration: none;
    white-space: nowrap;
}

.operator-customer-suggest-profile:hover,
.operator-customer-suggest-profile:focus-visible {
    background: rgb(34 211 238 / 0.12);
}

.operator-customer-suggest-item.is-highlighted {
    background: rgb(34 211 238 / 0.15);
}

.operator-customer-suggest-empty {
    margin: 0;
    padding: 0.65rem 0.75rem;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #94a3b8;
}

.operator-customer-suggest-empty.is-warn {
    color: #fcd34d;
}

.walkin-compact-row--client .operator-customer-field {
    position: relative;
    overflow: visible;
    z-index: 30;
}

.walkin-guided-form .operator-customer-suggest {
    z-index: 200;
}

.operator-customer-suggest.is-floating {
    position: fixed;
    z-index: 10050;
    right: auto;
    max-height: min(14rem, 38vh);
    border-color: rgb(51 65 85 / 0.75);
    background: rgb(15 23 42 / 0.97);
    box-shadow: 0 10px 28px rgb(0 0 0 / 0.32);
}

html.theme-light .operator-customer-suggest.is-floating {
    background: #ffffff;
    border-color: #dbe4f0;
    box-shadow: 0 12px 32px rgb(15 23 42 / 0.12);
}

.walkin-compact-row--client .operator-customer-field:focus-within {
    z-index: 40;
}

/* —— Walk-in guidato (operatori) —— */
.walkin-booking-dialog--guided {
    width: min(680px, calc(100vw - 1.25rem));
}

.walkin-guided-form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.walkin-guided-step {
    padding: 0.85rem 0.95rem;
    border-radius: 0.9rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(15 23 42 / 0.35);
}

.walkin-guided-step-head {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.walkin-guided-step-num {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgb(34 211 238 / 0.15);
    color: #67e8f9;
    font-size: 0.82rem;
    font-weight: 800;
}

.walkin-guided-step-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    color: #f1f5f9;
}

.walkin-guided-step-lead {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.35;
}

.walkin-guided-client {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    align-items: end;
}

.walkin-guided-client .operator-customer-field {
    grid-column: 1 / -1;
    position: relative;
    overflow: visible;
    z-index: 30;
}

.walkin-source-inline--guided {
    grid-column: 1 / -1;
    flex-wrap: wrap;
    padding: 0.35rem 0 0;
    align-self: auto;
}

.walkin-source-inline-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.walkin-guided-schedule {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    align-items: end;
}

.walkin-guided-schedule .walkin-field-players {
    grid-column: 1 / -1;
}

.walkin-time-slot-note--guided {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: #64748b;
}

.walkin-players-stepper--guided {
    display: grid;
    grid-template-columns: 2.75rem 1fr 2.75rem;
    gap: 0.35rem;
    max-width: 14rem;
}

.walkin-players-stepper--guided .walkin-stepper-btn,
.walkin-players-stepper--guided .walkin-players-input {
    min-height: 2.85rem;
    font-size: 1.1rem;
}

.walkin-product-detail--guided {
    margin-top: 0.45rem;
    padding: 0.5rem 0.65rem;
    border-radius: 0.55rem;
    background: rgb(34 211 238 / 0.08);
    border: 1px solid rgb(34 211 238 / 0.2);
    font-size: 0.8rem;
    color: #cbd5e1;
}

.walkin-pricing--guided {
    margin-top: 0;
    padding: 0;
    border: none;
    background: transparent;
}

.walkin-pay-highlight {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    align-items: end;
}

.walkin-pay-highlight-k {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.walkin-pay-highlight-price {
    display: block;
    font-size: 1.35rem;
    color: #67e8f9;
}

.walkin-input-total--hero {
    font-size: 1.35rem;
    font-weight: 800;
    min-height: 2.85rem;
    text-align: right;
}

.walkin-pricing-summary--guided {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
}

.walkin-discount-details {
    margin-top: 0.65rem;
    border-radius: 0.65rem;
    border: 1px dashed rgb(51 65 85 / 0.75);
    background: rgb(2 6 23 / 0.35);
}

.walkin-discount-details-summary {
    padding: 0.55rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #94a3b8;
    cursor: pointer;
    list-style: none;
}

.walkin-discount-details-summary::-webkit-details-marker {
    display: none;
}

.walkin-discount-details[open] .walkin-discount-details-summary {
    color: #a5f3fc;
    border-bottom: 1px solid rgb(51 65 85 / 0.5);
}

.walkin-discount-details-body {
    padding: 0.65rem 0.75rem 0.75rem;
}

.walkin-discount-fields--guided {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.55rem;
}

.walkin-guided-footer {
    padding-top: 0.25rem;
    display: grid;
    gap: 0.65rem;
}

.walkin-guided-footer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
}

.walkin-quick-partita--guided {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    border-radius: 0.65rem;
    background: rgb(15 23 42 / 0.45);
    font-size: 0.78rem;
    color: #94a3b8;
    cursor: pointer;
    max-width: 16rem;
}

.walkin-quick-partita--guided strong {
    display: block;
    color: #e2e8f0;
    font-size: 0.82rem;
}

.walkin-quick-partita--guided small {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.7rem;
    color: #64748b;
}

.walkin-submit-btn--guided {
    flex: 1 1 auto;
    min-width: 12rem;
    min-height: 2.85rem;
    padding: 0.7rem 1.35rem;
    border: none;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, #22d3ee, #06b6d4);
    color: #0f172a;
    font-weight: 800;
    font-size: 0.95rem;
    cursor: pointer;
    box-shadow: 0 10px 28px rgb(34 211 238 / 0.28);
}

.walkin-field-optional {
    font-weight: 500;
    color: #64748b;
    text-transform: none;
    letter-spacing: 0;
}

html.theme-light .walkin-booking-dialog--guided .walkin-guided-step {
    background: #f8fafc;
    border-color: #dbe4f0;
}

html.theme-light .walkin-guided-step-title {
    color: #0f172a;
}

html.theme-light .walkin-product-detail--guided {
    background: rgb(34 211 238 / 0.06);
    border-color: #bae6fd;
    color: #475569;
}

html.theme-light .walkin-discount-details {
    background: #f8fafc;
    border-color: #cbd5e1;
}

@media (max-width: 640px) {
    .walkin-guided-client,
    .walkin-guided-schedule,
    .walkin-pay-highlight {
        grid-template-columns: 1fr;
    }

    .walkin-guided-footer-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .walkin-submit-btn--guided {
        width: 100%;
    }
}

/* —— Walk-in studio (vista unica scrollabile) —— */
.walkin-booking-dialog--studio {
    width: min(1080px, calc(100vw - 1rem));
    max-height: calc(100vh - 1rem);
    margin: auto;
}

.walkin-studio-panel.request-detail-panel {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: min(720px, calc(100vh - 1rem));
    max-height: calc(100vh - 1rem);
    padding: 0;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: linear-gradient(165deg, rgb(15 23 42 / 0.98), rgb(2 6 23 / 0.98));
    box-shadow: 0 24px 60px rgb(0 0 0 / 0.45);
}

.walkin-studio-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(15 23 42 / 0.85);
}

.walkin-studio-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #f8fafc;
}

.walkin-studio-subtitle {
    margin: 0.1rem 0 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

.walkin-studio-close {
    position: static;
    flex-shrink: 0;
}

.walkin-studio-tabs {
    display: flex;
    gap: 0.15rem;
    padding: 0.35rem 0.5rem 0;
    background: rgb(30 41 59 / 0.85);
    border-bottom: 1px solid rgb(51 65 85 / 0.65);
}

.walkin-studio-form {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.walkin-studio-form .walkin-studio-tabs {
    flex-shrink: 0;
}

.walkin-studio-layout {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    overflow: hidden;
}

.walkin-studio-main {
    position: relative;
    min-height: 0;
    overflow: hidden;
    padding: 0.65rem 0.85rem;
}

.walkin-studio-main--unified {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0.75rem 0.9rem 1rem;
    scroll-behavior: smooth;
}

.walkin-studio-main--unified .walkin-studio-section {
    flex-shrink: 0;
}

.walkin-studio-main--unified .walkin-studio-section:first-child {
    position: relative;
    z-index: 40;
}

.walkin-studio-aside {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
    overflow-y: auto;
    padding: 0.65rem 0.75rem 0.85rem;
    border-left: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(2 6 23 / 0.35);
}

.walkin-studio-aside-incasso {
    display: grid;
    gap: 0.55rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgb(51 65 85 / 0.55);
}

.walkin-studio-aside-incasso .walkin-studio-discount-lead {
    display: none;
}

.walkin-studio-aside-incasso .walkin-discount-type {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

.walkin-studio-aside-incasso .walkin-discount-pill {
    min-height: 2rem;
    padding: 0.35rem 0.4rem;
    font-size: 0.68rem;
}

.walkin-studio-aside-incasso .walkin-discount-fields--studio {
    grid-template-columns: 1fr;
}

.walkin-studio-aside-incasso .walkin-studio-collect-toggle {
    margin: 0;
    font-size: 0.78rem;
}

.walkin-studio-aside-incasso .walkin-studio-payment-wrap {
    max-height: 12rem;
    overflow-y: auto;
}

.walkin-studio-pane {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.walkin-studio-pane[hidden] {
    display: none !important;
}

.walkin-studio-cliente-lead {
    margin: 0 0 0.45rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #94a3b8;
}

.walkin-studio-incasso-lead,
.walkin-studio-incasso-hint {
    margin: 0 0 0.45rem;
    font-size: 0.74rem;
    line-height: 1.35;
    color: #94a3b8;
}

.walkin-studio-collect-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0.35rem 0 0.55rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid rgb(52 211 153 / 0.35);
    background: rgb(16 185 129 / 0.08);
    font-size: 0.78rem;
    color: #cbd5e1;
    cursor: pointer;
}

.walkin-studio-collect-toggle input {
    margin-top: 0.15rem;
    accent-color: #34d399;
}

.walkin-studio-payment-wrap {
    margin-top: 0.35rem;
}

.payment-split-block--walkin {
    padding: 0.55rem;
    border-radius: 10px;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(2 6 23 / 0.45);
}

.walkin-studio-product .walkin-product-search {
    margin-bottom: 0.35rem;
}

.walkin-studio-tab {
    border: none;
    border-radius: 0.4rem 0.4rem 0 0;
    padding: 0.45rem 0.85rem;
    background: transparent;
    color: #94a3b8;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.walkin-studio-tab.is-active {
    background: rgb(15 23 42 / 0.98);
    color: #f1f5f9;
    box-shadow: inset 0 1px 0 rgb(34 211 238 / 0.25);
}

.walkin-studio-section-title {
    margin: 0 0 0.45rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid rgb(34 211 238 / 0.35);
    font-size: 0.92rem;
    font-weight: 800;
    color: #67e8f9;
    letter-spacing: 0.02em;
}

.walkin-studio-section-body {
    display: grid;
    gap: 0.45rem;
}

.walkin-studio-cosa {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.55rem;
    align-items: end;
}

.walkin-studio-cosa .walkin-studio-product {
    grid-column: 1 / -1;
}

.walkin-studio-players {
    min-width: 13.5rem;
}

.walkin-studio-quando {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    align-items: end;
}

.walkin-studio-cliente {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    align-items: end;
}

.walkin-studio-cliente .operator-customer-field {
    grid-column: 1 / -1;
    position: relative;
    z-index: 30;
    overflow: visible;
}

.walkin-source-inline--studio {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    padding-top: 0.15rem;
}

.walkin-players-stepper--studio {
    display: grid;
    grid-template-columns: 2.75rem minmax(4.25rem, 1fr) 2.75rem;
    gap: 0.35rem;
    width: 100%;
    min-width: 12.5rem;
}

.walkin-players-stepper--studio .walkin-stepper-btn,
.walkin-players-stepper--studio .walkin-players-input {
    min-height: 2.65rem;
    font-size: 1.15rem;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.walkin-players-stepper--studio .walkin-players-input {
    min-width: 4.25rem;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.walkin-product-detail--studio {
    margin-top: 0.3rem;
    font-size: 0.72rem;
    color: #94a3b8;
    line-height: 1.35;
}

.walkin-studio-product .walkin-product-select {
    font-size: 0.78rem;
}

.walkin-studio-form .walkin-input,
.walkin-studio-form select.walkin-input {
    min-height: 2.5rem;
    padding: 0.4rem 0.6rem;
    font-size: 0.88rem;
}

.walkin-studio-form [data-time-field-wrap] select,
.walkin-studio-form .walkin-input-time,
.walkin-studio-form .walkin-general-time-slot,
.walkin-studio-form .walkin-vr-time-slot {
    width: 100%;
    min-width: 5.5rem;
    appearance: auto;
    -webkit-appearance: menulist;
    color: #f8fafc;
    background: rgb(2 6 23 / 0.75);
    font-weight: 700;
    cursor: pointer;
}

.walkin-studio-form [data-time-field-wrap] select option {
    color: #0f172a;
    background: #fff;
}

.walkin-time-slot-note--studio {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.68rem;
    color: #64748b;
}

.walkin-field-notes-full .walkin-textarea {
    min-height: 5.5rem;
    resize: none;
}

.walkin-studio-discount-lead {
    margin: 0 0 0.45rem;
    font-size: 0.75rem;
    color: #94a3b8;
}

.walkin-discount-fields--studio {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
}

.walkin-discount-fields--studio .walkin-discount-field--reason {
    grid-column: 1 / -1;
}

.walkin-studio-aside {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    padding: 0.65rem 0.75rem;
    border-left: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(2 6 23 / 0.55);
}

.walkin-studio-aside-actions {
    display: grid;
    gap: 0.4rem;
}

.walkin-studio-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.35rem;
    border-radius: 0.55rem;
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
}

.walkin-studio-btn--save {
    border: none;
    color: #0f172a;
    background: linear-gradient(135deg, #22d3ee, #06b6d4);
    box-shadow: 0 8px 22px rgb(34 211 238 / 0.25);
}

.walkin-studio-btn--cancel {
    border: 1px solid rgb(248 113 113 / 0.45);
    background: transparent;
    color: #fca5a5;
}

.walkin-studio-totals-title {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.walkin-studio-total-lines {
    margin: 0;
    display: grid;
    gap: 0.35rem;
}

.walkin-studio-total-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.walkin-studio-total-row dt {
    margin: 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

.walkin-studio-total-row dd {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    color: #67e8f9;
}

.walkin-studio-total-row--due dd {
    flex: 1;
    max-width: 6.5rem;
}

.walkin-studio-total-input {
    width: 100%;
    min-height: 2.1rem !important;
    text-align: right;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
}

.walkin-studio-formula {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.68rem;
    color: #64748b;
}

.walkin-studio-total-hint {
    margin: 0.35rem 0 0;
    font-size: 0.68rem;
    color: #64748b;
    line-height: 1.35;
}

.walkin-studio-quick {
    margin-top: auto;
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: #94a3b8;
    cursor: pointer;
}

.walkin-studio-quick strong,
.walkin-studio-quick span {
    display: block;
}

.walkin-studio-quick small {
    display: block;
    margin-top: 0.05rem;
    font-size: 0.65rem;
    color: #64748b;
}

.walkin-studio-form .operator-customer-suggest {
    z-index: 200;
}

.walkin-field--customer-search {
    position: relative;
    z-index: 45;
    overflow: visible;
}

.walkin-studio-cliente,
.walkin-studio-section-body {
    overflow: visible;
}

html.theme-light .walkin-studio-panel.request-detail-panel {
    background: #ffffff;
    border-color: #dbe4f0;
}

html.theme-light .walkin-studio-header {
    background: #f8fafc;
    border-color: #dbe4f0;
}

html.theme-light .walkin-studio-title {
    color: #0f172a;
}

html.theme-light .walkin-studio-tabs {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

html.theme-light .walkin-studio-tab.is-active {
    background: #ffffff;
    color: #0f172a;
}

html.theme-light .walkin-studio-aside {
    background: #f8fafc;
    border-color: #dbe4f0;
}

@media (max-width: 760px) {
    .walkin-booking-dialog--studio {
        width: calc(100vw - 0.5rem);
    }

    .walkin-studio-layout {
        grid-template-columns: 1fr;
    }

    .walkin-studio-aside {
        border-left: none;
        border-top: 1px solid rgb(51 65 85 / 0.65);
    }

    .walkin-studio-cosa,
    .walkin-studio-quando,
    .walkin-studio-cliente {
        grid-template-columns: 1fr;
    }
}

.walkin-date-picker {
    position: relative;
}

.walkin-date-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    cursor: pointer;
}

.walkin-mini-cal {
    position: absolute;
    z-index: 120;
    top: calc(100% + 0.45rem);
    left: 0;
    min-width: 17.5rem;
    padding: 0.65rem;
    border-radius: 1rem;
    border: 1px solid #334155;
    background: #0f172a;
    box-shadow: 0 12px 40px rgb(0 0 0 / 0.45);
}

.walkin-mini-cal[hidden] {
    display: none !important;
}

.walkin-mini-cal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: #e2e8f0;
}

.walkin-mini-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.2rem;
    text-align: center;
    font-size: 0.72rem;
}

.walkin-mini-cal-grid button {
    border: none;
    border-radius: 0.4rem;
    background: transparent;
    color: #cbd5e1;
    padding: 0.35rem 0;
    cursor: pointer;
}

.walkin-mini-cal-grid button:hover:not(:disabled) {
    background: rgb(34 211 238 / 0.15);
    color: #a5f3fc;
}

.walkin-mini-cal-grid button.is-selected {
    background: #22d3ee;
    color: #0f172a;
    font-weight: 800;
}

.walkin-mini-cal-grid button:disabled {
    opacity: 0.35;
    cursor: default;
}

.walkin-vr-time-slot,
.walkin-general-time-slot {
    cursor: pointer;
    width: 100%;
}

/* —— Calendario griglia oraria —— */
.operator-cal-timegrid-wrap {
    margin-top: 0.75rem;
}

.operator-cal-timegrid-hint {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    color: #64748b;
}

.operator-cal-timegrid-hours-row {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    margin-bottom: 0;
    border: 1px solid #1e293b;
    border-bottom: none;
    border-radius: 0.75rem 0.75rem 0 0;
    background: rgb(15 23 42 / 0.92);
    overflow: hidden;
}

.operator-cal-timegrid-hours-axis {
    border-right: 1px solid #334155;
    min-height: 2rem;
}

.operator-cal-timegrid-hours-bands {
    display: flex;
    min-width: 0;
}

.operator-cal-room-hours-band {
    padding: 0.5rem 0.75rem;
    text-align: center;
    font-size: 0.76rem;
    font-weight: 600;
    color: #94a3b8;
    border-left: 1px solid #334155;
    line-height: 1.35;
    min-width: 0;
}

.operator-cal-room-hours-band:first-child {
    border-left: none;
}

.operator-cal-arena-focus-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.45rem 0.75rem;
    border: 1px solid #1e293b;
    border-bottom: none;
    border-radius: 0.75rem 0.75rem 0 0;
    background: rgb(15 23 42 / 0.95);
}

.operator-cal-timegrid-wrap.is-arena-focus .operator-cal-arena-focus-bar {
    border-radius: 0;
    border-top: none;
}

.operator-cal-arena-back {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    border: 1px solid rgb(51 65 85 / 0.85);
    background: rgb(30 41 59 / 0.85);
    color: #e2e8f0;
    font-size: 0.74rem;
    font-weight: 700;
    text-decoration: none;
}

.operator-cal-arena-back:hover {
    border-color: rgb(34 211 238 / 0.55);
    color: #67e8f9;
}

.operator-cal-arena-focus-meta {
    font-size: 0.78rem;
    font-weight: 700;
    color: #cbd5e1;
}

.operator-cal-arena-capacity {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.66rem;
    font-weight: 600;
    color: #64748b;
}

a.operator-cal-timegrid-room-head.is-arena-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: background .15s, box-shadow .15s;
}

a.operator-cal-timegrid-room-head.is-arena-link:hover {
    background: rgb(34 211 238 / 0.1);
    box-shadow: inset 0 -2px 0 rgb(34 211 238 / 0.45);
}

.operator-cal-timegrid-wrap.is-arena-focus .operator-cal-timegrid-hours-row {
    border-radius: 0;
}

.operator-cal-timegrid-wrap.is-arena-focus .operator-cal-timegrid-heads-rooms,
.operator-cal-timegrid-wrap.is-arena-focus .operator-cal-timegrid-rooms {
    grid-template-columns: minmax(0, 1fr);
}

.operator-cal-timegrid-heads {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    gap: 0;
    margin-bottom: 0;
    border: 1px solid #1e293b;
    border-bottom: none;
    border-radius: 0;
    background: rgb(15 23 42 / 0.9);
    overflow: hidden;
}

.operator-cal-timegrid-heads-axis {
    border-right: 1px solid #334155;
    min-height: 2.75rem;
}

.operator-cal-timegrid-heads-rooms {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.operator-cal-timegrid-heads-rooms .operator-cal-timegrid-room-head {
    border-bottom: none;
    min-width: 0;
}

.operator-cal-timegrid {
    display: grid;
    grid-template-columns: 3.75rem 1fr;
    gap: 0;
    border-radius: 0 0 0.75rem 0.75rem;
    border: 1px solid #1e293b;
    border-top: none;
    background: #020617;
    overflow: hidden;
    min-height: 28rem;
}

.operator-cal-timegrid-scroll {
    max-height: min(78vh, 960px);
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid #1e293b;
    border-top: none;
    border-radius: 0 0 0.75rem 0.75rem;
    background: #020617;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.operator-cal-timegrid-scroll::-webkit-scrollbar {
    width: 10px;
}

.operator-cal-timegrid-scroll::-webkit-scrollbar-thumb {
    background: rgb(100 116 139 / 0.55);
    border-radius: 999px;
}

.operator-cal-timegrid-scroll::-webkit-scrollbar-track {
    background: rgb(15 23 42 / 0.6);
}

.operator-cal-timegrid--operating {
    --cal-hour-height: 4.35rem;
    min-height: auto;
    border: none;
    border-radius: 0;
}

.operator-cal-timegrid-wrap--operating .operator-cal-timegrid-heads {
    grid-template-columns: 3.75rem 1fr;
}

.operator-cal-timegrid-wrap--operating .operator-cal-timegrid-heads-rooms,
.operator-cal-timegrid-wrap--operating .operator-cal-timegrid-rooms {
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}

.operator-cal-timegrid-room-head.is-arena-lane strong {
    font-size: 0.82rem;
}

.operator-cal-timegrid-room-head.is-arena-lane {
    align-items: center;
    text-align: center;
}

.walkin-studio-quando--arena {
    grid-template-columns: 1fr 1fr auto;
}

.walkin-field-arena {
    grid-column: 1 / -1;
}

.walkin-arena-hint {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.68rem;
    color: #64748b;
}

.walkin-arena-product-hint {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.68rem;
    color: #94a3b8;
}

html.theme-light .walkin-arena-product-hint {
    color: #0369a1;
}

.operator-cal-timegrid--operating .operator-cal-timegrid-axis,
.operator-cal-timegrid--operating .operator-cal-timegrid-canvas {
    min-height: calc(var(--cal-span-min, 1440) / 60 * var(--cal-hour-height, 4.35rem));
    height: calc(var(--cal-span-min, 1440) / 60 * var(--cal-hour-height, 4.35rem));
}

.operator-cal-timegrid-hour-line--postmidnight {
    border-top-color: rgb(251 191 36 / 0.55);
}

.operator-cal-timegrid-hour-line--postmidnight .operator-cal-timegrid-hour-label {
    color: #fbbf24;
}

.operator-cal-timegrid-half-line--postmidnight {
    border-top-color: rgb(251 191 36 / 0.28);
}

.operator-cal-timegrid-axis {
    position: relative;
    border-right: 1px solid #334155;
    background: rgb(15 23 42 / 0.8);
}

.operator-cal-timegrid-hour-line,
.operator-cal-timegrid-half-line {
    position: absolute;
    left: 0;
    right: 0;
    pointer-events: none;
}

.operator-cal-timegrid-hour-line {
    border-top: 1px solid rgb(100 116 139 / 0.5);
}

.operator-cal-timegrid-half-line {
    border-top: 1px dashed rgb(71 85 105 / 0.38);
}

.operator-cal-timegrid-hour-label {
    position: absolute;
    right: 0.4rem;
    top: -0.5rem;
    font-size: 0.72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #94a3b8;
}

.operator-cal-timegrid-rooms {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.operator-cal-timegrid-room-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid #334155;
    border-left: 1px solid #334155;
    background: rgb(15 23 42 / 0.9);
    font-size: 0.82rem;
    font-weight: 700;
    color: #e2e8f0;
    line-height: 1.3;
    white-space: normal;
}

.operator-cal-timegrid-heads-rooms .operator-cal-timegrid-room-head:first-child {
    border-left: none;
}

.operator-cal-timegrid-room-head strong {
    font-size: 0.88rem;
}

.operator-cal-timegrid-room-hours {
    font-size: 0.72rem;
    font-weight: 600;
    color: #67e8f9;
    line-height: 1.35;
}

.operator-cal-timegrid-canvas {
    position: relative;
    min-height: calc(var(--cal-span-min, 720) * 1px);
    height: 100%;
    cursor: pointer;
}

.operator-cal-timegrid-grid-lines {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.operator-cal-timegrid-grid-hour,
.operator-cal-timegrid-grid-half {
    position: absolute;
    left: 0;
    right: 0;
}

.operator-cal-timegrid-grid-hour {
    border-top: 1px solid rgb(100 116 139 / 0.45);
}

.operator-cal-timegrid-grid-half {
    border-top: 1px dashed rgb(71 85 105 / 0.32);
}

.operator-cal-timegrid-closed {
    position: absolute;
    left: 0;
    right: 0;
    pointer-events: none;
    z-index: 1;
    background-color: rgb(2 6 23 / 0.38);
    background-image:
        repeating-linear-gradient(
            45deg,
            rgb(148 163 184 / 0) 0,
            rgb(148 163 184 / 0) 12px,
            rgb(148 163 184 / 0.16) 12px,
            rgb(148 163 184 / 0.16) 13px
        ),
        repeating-linear-gradient(
            -45deg,
            rgb(148 163 184 / 0) 0,
            rgb(148 163 184 / 0) 12px,
            rgb(148 163 184 / 0.16) 12px,
            rgb(148 163 184 / 0.16) 13px
        );
}

.operator-cal-timegrid-closed--staff {
    background-color: rgb(2 6 23 / 0.3);
    background-image:
        repeating-linear-gradient(
            45deg,
            rgb(148 163 184 / 0) 0,
            rgb(148 163 184 / 0) 14px,
            rgb(148 163 184 / 0.12) 14px,
            rgb(148 163 184 / 0.12) 15px
        ),
        repeating-linear-gradient(
            -45deg,
            rgb(148 163 184 / 0) 0,
            rgb(148 163 184 / 0) 14px,
            rgb(148 163 184 / 0.12) 14px,
            rgb(148 163 184 / 0.12) 15px
        );
}

.operator-cal-timegrid-closed--before {
    border-left: 2px solid rgb(100 116 139 / 0.45);
}

.operator-cal-timegrid-closed--after {
    border-left: 2px solid rgb(100 116 139 / 0.45);
    border-top: 1px solid rgb(100 116 139 / 0.35);
}

.operator-cal-timegrid-closed--all {
    top: 0;
    bottom: 0;
    height: 100%;
}

.operator-cal-timegrid-room {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.operator-cal-timegrid-now {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: #f87171;
    z-index: 4;
    pointer-events: none;
}

.operator-cal-timegrid-events {
    position: absolute;
    inset: 0;
    z-index: 2;
}

.operator-cal-timegrid-event {
    position: absolute;
    left: 4%;
    right: 4%;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.25rem 0.4rem;
    border-radius: 0.45rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.2), rgb(15 23 42 / 0.85));
    color: #f1f5f9;
    font-size: 0.68rem;
    text-decoration: none;
    overflow: hidden;
    box-sizing: border-box;
}

.operator-cal-timegrid-event.is-clickable {
    cursor: pointer;
    border: none;
    text-align: left;
    width: auto;
}

.operator-cal-timegrid-event-time {
    font-weight: 800;
    color: #67e8f9;
}

.operator-cal-timegrid-event-title {
    font-weight: 700;
    line-height: 1.2;
}

.operator-cal-timegrid-event-meta {
    color: #94a3b8;
    font-size: 0.62rem;
}

.operator-cal-timegrid-actions {
    margin-top: 0.65rem;
}

html.theme-light .operator-cal-timegrid {
    border-color: #e2e8f0 !important;
    background: #ffffff !important;
}

html.theme-light .operator-cal-timegrid-axis {
    border-right-color: #e2e8f0 !important;
    background: #f8fafc !important;
}

html.theme-light .operator-cal-timegrid-hour-line,
html.theme-light .operator-cal-timegrid-half-line,
html.theme-light .operator-cal-timegrid-grid-hour,
html.theme-light .operator-cal-timegrid-grid-half {
    border-top-color: rgb(226 232 240 / 0.9) !important;
}

html.theme-light .operator-cal-timegrid-hour-label {
    color: #64748b !important;
}

html.theme-light .operator-cal-timegrid-room-head {
    border-bottom-color: #e2e8f0 !important;
    background: #f8fafc !important;
    color: #0f172a !important;
}

html.theme-light .operator-cal-timegrid-room-hours {
    color: #0369a1 !important;
}

html.theme-light .operator-cal-timegrid-event {
    border-color: rgb(14 165 233 / 0.35) !important;
    background: linear-gradient(135deg, rgb(224 242 254 / 0.95), #ffffff) !important;
    color: #0f172a !important;
    box-shadow: 0 2px 8px rgb(15 23 42 / 0.06);
}

html.theme-light .operator-cal-timegrid-event-time {
    color: #0369a1 !important;
}

html.theme-light .operator-cal-timegrid-event-meta {
    color: #64748b !important;
}

html.theme-light .operator-cal-timegrid-hint {
    color: #64748b !important;
}

html.theme-light .operator-cal-timegrid-scroll {
    background: #ffffff;
    border-color: #e2e8f0;
}

html.theme-light .operator-cal-timegrid-scroll::-webkit-scrollbar-track {
    background: #f1f5f9;
}

html.theme-light .operator-cal-timegrid-scroll::-webkit-scrollbar-thumb {
    background: #cbd5e1;
}

html.theme-light .operator-cal-timegrid-hour-line--postmidnight {
    border-top-color: rgb(245 158 11 / 0.55);
}

html.theme-light .operator-cal-timegrid-hour-line--postmidnight .operator-cal-timegrid-hour-label {
    color: #b45309;
}

html.theme-light .operator-cal-timegrid-closed {
    background-color: rgb(241 245 249 / 0.72);
    background-image:
        repeating-linear-gradient(
            45deg,
            rgb(100 116 139 / 0) 0,
            rgb(100 116 139 / 0) 12px,
            rgb(100 116 139 / 0.14) 12px,
            rgb(100 116 139 / 0.14) 13px
        ),
        repeating-linear-gradient(
            -45deg,
            rgb(100 116 139 / 0) 0,
            rgb(100 116 139 / 0) 12px,
            rgb(100 116 139 / 0.14) 12px,
            rgb(100 116 139 / 0.14) 13px
        );
}

html.theme-light .operator-cal-timegrid-closed--staff {
    background-color: rgb(248 250 252 / 0.82);
    background-image:
        repeating-linear-gradient(
            45deg,
            rgb(100 116 139 / 0) 0,
            rgb(100 116 139 / 0) 14px,
            rgb(100 116 139 / 0.1) 14px,
            rgb(100 116 139 / 0.1) 15px
        ),
        repeating-linear-gradient(
            -45deg,
            rgb(100 116 139 / 0) 0,
            rgb(100 116 139 / 0) 14px,
            rgb(100 116 139 / 0.1) 14px,
            rgb(100 116 139 / 0.1) 15px
        );
}

@media (max-width: 720px) {
    .operator-cal-timegrid {
        grid-template-columns: 2.75rem 1fr;
    }

    .operator-cal-timegrid-wrap--operating .operator-cal-timegrid-heads {
        grid-template-columns: 2.75rem 1fr;
    }

    .operator-cal-timegrid--operating {
        --cal-hour-height: 3.75rem;
    }
}

/* —— Catalogo compatto —— */
.catalog-slim {
    width: 100%;
    max-width: none;
}

.catalog-form-fold {
    margin-bottom: 0.75rem;
    border-radius: 0.65rem;
    border: none;
    background: transparent;
    overflow: hidden;
}

.catalog-form-fold-summary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.7rem 1rem;
    border-radius: 0.65rem;
    border: none;
    background: linear-gradient(135deg, #0891b2 0%, #22d3ee 55%, #67e8f9 100%);
    color: #0f172a;
    font-weight: 800;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
    cursor: pointer;
    list-style: none;
    box-shadow: 0 8px 22px rgb(34 211 238 / 0.32);
    transition: filter 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}

.catalog-form-fold-summary:hover {
    filter: brightness(1.05);
    box-shadow: 0 10px 28px rgb(34 211 238 / 0.4);
}

.catalog-form-fold-summary:active {
    transform: translateY(1px);
}

.catalog-form-fold[open] .catalog-form-fold-summary {
    border-radius: 0.65rem 0.65rem 0 0;
    background: linear-gradient(135deg, rgb(8 145 178 / 0.35) 0%, rgb(34 211 238 / 0.22) 100%);
    color: #a5f3fc;
    box-shadow: inset 0 0 0 1px rgb(34 211 238 / 0.45);
}

.catalog-form-fold-summary::-webkit-details-marker {
    display: none;
}

.catalog-form-fold-body {
    padding: 0.65rem 0.85rem 0.75rem;
    border: 1px solid rgb(34 211 238 / 0.28);
    border-top: none;
    border-radius: 0 0 0.65rem 0.65rem;
    background: rgb(15 23 42 / 0.55);
}

html.theme-light .catalog-form-fold-summary {
    background: linear-gradient(135deg, #0e7490 0%, #06b6d4 55%, #22d3ee 100%);
    color: #fff;
    box-shadow: 0 6px 18px rgb(6 182 212 / 0.28);
}

html.theme-light .catalog-form-fold[open] .catalog-form-fold-summary {
    background: rgb(6 182 212 / 0.12);
    color: #0e7490;
    box-shadow: inset 0 0 0 1px rgb(6 182 212 / 0.35);
}

html.theme-light .catalog-form-fold-body {
    border-color: rgb(6 182 212 / 0.25);
    background: #fff;
}

.catalog-form-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.45rem 0.55rem;
}

.catalog-field {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    min-width: 5.5rem;
}

.catalog-field-grow {
    flex: 1 1 10rem;
    min-width: 8rem;
}

.catalog-field-scheduling {
    flex: 1 1 100%;
    min-width: 100%;
    padding: 0.55rem 0.65rem;
    border-radius: 0.55rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.35);
}

.catalog-field-scheduling legend {
    padding: 0 0.25rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.catalog-scheduling-opt {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-top: 0.35rem;
    font-weight: 500;
    color: #cbd5e1;
    cursor: pointer;
}

.catalog-scheduling-opt strong {
    display: block;
    font-size: 0.78rem;
    color: #e2e8f0;
}

.catalog-scheduling-opt small {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.68rem;
    color: #64748b;
}

.catalog-schedule-badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    vertical-align: middle;
}

.catalog-schedule-badge.is-instant {
    border: 1px solid rgb(251 191 36 / 0.35);
    background: rgb(251 191 36 / 0.12);
    color: #fcd34d;
}

.catalog-schedule-badge.is-timed {
    border: 1px solid rgb(34 211 238 / 0.28);
    background: rgb(34 211 238 / 0.1);
    color: #67e8f9;
}

.catalog-row-instant td {
    background: linear-gradient(90deg, rgb(251 191 36 / 0.06) 0%, transparent 55%);
}

.catalog-row-timed td {
    background: transparent;
}

.catalog-field-narrow {
    min-width: 3.5rem;
    max-width: 5rem;
}

.catalog-field input,
.catalog-field select {
    border-radius: 0.45rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.35rem 0.5rem;
    font-size: 0.8125rem;
}

.catalog-vis-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.catalog-vis-inline-opt {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    cursor: pointer;
}

.catalog-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.catalog-btn-save {
    padding: 0.4rem 0.85rem;
    border-radius: 0.5rem;
    border: none;
    background: #22d3ee;
    color: #0f172a;
    font-weight: 800;
    font-size: 0.8rem;
    cursor: pointer;
}

.catalog-btn-cancel {
    padding: 0.4rem 0.65rem;
    border-radius: 0.5rem;
    color: #94a3b8;
    font-size: 0.8rem;
    text-decoration: none;
}

.catalog-toolbar-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.catalog-slim-count {
    font-size: 0.82rem;
    font-weight: 700;
    color: #cbd5e1;
}

.catalog-table-toolbar {
    margin-bottom: 0.7rem;
    padding: 0.6rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(165deg, rgb(30 41 59 / 0.55) 0%, rgb(15 23 42 / 0.35) 100%);
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.06) inset;
}

.catalog-vis-filters {
    display: flex;
    gap: 0.25rem;
}

.catalog-vis-filter {
    padding: 0.25rem 0.5rem;
    border-radius: 0.4rem;
    border: 1px solid #334155;
    background: #020617;
    color: #94a3b8;
    font-size: 0.75rem;
    cursor: pointer;
}

.catalog-vis-filter.is-active {
    border-color: rgb(34 211 238 / 0.5);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
}

.catalog-search-input {
    min-width: 12rem;
    flex: 1;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    background: #020617;
    color: #e2e8f0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8125rem;
}

.catalog-table-wrap {
    max-height: min(78vh, 48rem);
    overflow-x: visible;
    overflow-y: auto;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(180deg, rgb(15 23 42 / 0.92) 0%, rgb(2 6 23 / 0.98) 100%);
    box-shadow:
        0 0 0 1px rgb(15 23 42 / 0.8) inset,
        0 12px 28px rgb(2 6 23 / 0.45);
}

.catalog-table {
    width: 100%;
    min-width: 100%;
    table-layout: auto;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.catalog-table-head th {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 0.65rem 0.75rem;
    background: linear-gradient(180deg, rgb(30 41 59 / 0.98) 0%, rgb(15 23 42 / 0.98) 100%);
    border-bottom: 1px solid rgb(100 116 139 / 0.45);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
    text-align: left;
    white-space: nowrap;
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.08) inset;
}

.catalog-th-vis { width: 3.25rem; min-width: 3.25rem; }
.catalog-th-product { min-width: 14rem; }
.catalog-th-price { min-width: 12rem; text-align: right !important; }
.catalog-table--readonly .catalog-th-actions,
.catalog-table--readonly .catalog-actions-td {
  display: none;
}

.catalog-slim--readonly .catalog-fold-hint {
  margin-top: 0.25rem;
}

.catalog-field-arenas {
  border: 1px solid rgb(51 65 85 / 0.65);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
}

.catalog-field-arenas legend {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgb(148 163 184);
  padding: 0 0.35rem;
}

.catalog-arena-hint,
.catalog-arena-room-label {
  font-size: 0.8rem;
  color: rgb(148 163 184);
  margin: 0 0 0.5rem;
}

.catalog-arena-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.catalog-arena-opt {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
}

.catalog-arena-opt em {
  font-style: normal;
  color: rgb(100 116 139);
  font-size: 0.8rem;
}

.catalog-table--slim .catalog-table-head th {
    padding: 0.5rem 0.65rem;
}

.catalog-fold-hint {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.35;
}

.catalog-fold-hint strong {
    color: #cbd5e1;
    font-weight: 700;
}

.catalog-fold-actions {
    display: flex;
    gap: 0.25rem;
}

.catalog-fold-action {
    padding: 0.22rem 0.5rem;
    border-radius: 0.4rem;
    border: 1px solid #334155;
    background: #020617;
    color: #94a3b8;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
}

.catalog-fold-action:hover {
    border-color: rgb(34 211 238 / 0.45);
    color: #e2e8f0;
}

.catalog-table-empty {
    padding: 2rem !important;
    text-align: center;
    color: #64748b;
}

.catalog-row-room td {
    padding: 0 !important;
    border: none;
    background: transparent;
}

.catalog-room-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-top: 0.9rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.7rem 0.7rem 0 0;
    border: 1px solid rgb(34 211 238 / 0.28);
    border-bottom: none;
    background: linear-gradient(105deg, rgb(34 211 238 / 0.22) 0%, rgb(14 165 233 / 0.08) 38%, rgb(15 23 42 / 0.95) 100%);
    box-shadow:
        0 1px 0 rgb(34 211 238 / 0.15) inset,
        0 8px 18px rgb(2 6 23 / 0.35);
}

.catalog-row-room--collapsed .catalog-room-head {
    border-radius: 0.7rem;
    border-bottom: 1px solid rgb(34 211 238 / 0.28);
    margin-bottom: 0.35rem;
}

.catalog-room-head-text {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 1rem;
    min-width: 0;
}

.catalog-fold-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgb(34 211 238 / 0.35);
    border-radius: 0.45rem;
    background: linear-gradient(180deg, rgb(15 23 42 / 0.9), rgb(30 41 59 / 0.75));
    color: #a5f3fc;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.catalog-fold-btn:hover {
    color: #ecfeff;
    border-color: rgb(34 211 238 / 0.55);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.95), rgb(15 23 42 / 0.9));
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.2);
}

.catalog-fold-btn[aria-expanded="true"] {
    border-color: rgb(34 211 238 / 0.5);
    background: linear-gradient(180deg, rgb(34 211 238 / 0.18), rgb(15 23 42 / 0.88));
}

.catalog-fold-chevron {
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.15s ease;
    margin-left: -0.1rem;
}

.catalog-fold-btn[aria-expanded="true"] .catalog-fold-chevron {
    transform: rotate(45deg);
    margin-left: 0;
    margin-top: -0.12rem;
}

.catalog-room-name {
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: #f8fafc;
    text-shadow: 0 1px 12px rgb(34 211 238 / 0.25);
}

.catalog-room-meta {
    font-size: 0.78rem;
    font-weight: 600;
    color: #cbd5e1;
}

.catalog-row-category td {
    padding: 0.45rem 0.75rem 0.4rem 1.25rem !important;
    border-top: none;
    background: linear-gradient(90deg, rgb(167 139 250 / 0.16) 0%, rgb(99 102 241 / 0.08) 42%, rgb(15 23 42 / 0.55) 100%);
    border-left: 1px solid rgb(167 139 250 / 0.22);
    border-right: 1px solid rgb(167 139 250 / 0.22);
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.05) inset;
}

.catalog-category-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.75rem;
    padding-left: 0.15rem;
}

.catalog-row-category .catalog-fold-btn {
    width: 1.45rem;
    height: 1.45rem;
}

.catalog-category-pill {
    display: inline-block;
    padding: 0.28rem 0.65rem;
    border-radius: 0.45rem;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #ede9fe;
    background: linear-gradient(135deg, rgb(167 139 250 / 0.32), rgb(139 92 246 / 0.14));
    border: 1px solid rgb(196 181 253 / 0.4);
    box-shadow: 0 1px 8px rgb(139 92 246 / 0.2);
}

.catalog-category-meta {
    font-size: 0.76rem;
    font-weight: 600;
    color: #94a3b8;
}

.catalog-row-product td {
    padding: 0.5rem 0.9rem;
    vertical-align: middle;
    border-top: 1px solid rgb(51 65 85 / 0.32);
    background: linear-gradient(90deg, rgb(15 23 42 / 0.65) 0%, rgb(30 41 59 / 0.22) 100%);
    border-left: 1px solid rgb(51 65 85 / 0.4);
    border-right: 1px solid rgb(51 65 85 / 0.4);
    transition: background 0.15s ease;
}

.catalog-row-product:hover td {
    background: linear-gradient(90deg, rgb(34 211 238 / 0.07) 0%, rgb(30 41 59 / 0.45) 100%);
}

.catalog-row-product.catalog-row-operator td {
    background: linear-gradient(90deg, rgb(251 191 36 / 0.07) 0%, rgb(15 23 42 / 0.7) 100%);
}

.catalog-row-product.catalog-row-operator:hover td {
    background: linear-gradient(90deg, rgb(251 191 36 / 0.11) 0%, rgb(30 41 59 / 0.42) 100%);
}

.catalog-product-cell {
    min-width: 0;
}

.catalog-product-name {
    display: block;
    font-size: 0.86rem;
    font-weight: 700;
    color: #f8fafc;
    line-height: 1.3;
    word-break: break-word;
}

.catalog-product-meta {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.74rem;
    font-weight: 500;
    color: #94a3b8;
    line-height: 1.3;
}

.catalog-price-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.2rem 0.35rem;
    line-height: 1.25;
}

.catalog-price-compact-main {
    font-size: 0.84rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #f8fafc;
    white-space: nowrap;
}

.catalog-price-compact-basis {
    font-size: 0.7rem;
    font-weight: 600;
    color: #64748b;
}

.catalog-table--slim .catalog-price-promo {
    font-size: 0.68rem;
    padding: 0.1rem 0.35rem;
    border-radius: 0.3rem;
    background: rgb(251 191 36 / 0.15);
    color: #fde68a;
    max-width: none;
}

.catalog-row-actions {
    gap: 0.2rem;
}

.catalog-product-cat {
    display: inline-block;
    margin-top: 0.2rem;
    padding: 0.12rem 0.45rem;
    border-radius: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #cbd5e1;
    background: linear-gradient(90deg, rgb(51 65 85 / 0.65), rgb(30 41 59 / 0.35));
}

.catalog-vis-cell {
    vertical-align: middle;
}

.catalog-type-cell,
.catalog-duration-cell,
.catalog-players-cell {
    color: #cbd5e1;
    font-size: 0.84rem;
    font-weight: 500;
    white-space: nowrap;
}

.catalog-price-td {
    text-align: right;
    vertical-align: middle;
}

.catalog-price-cell {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.12rem;
    line-height: 1.35;
}

.catalog-price-main {
    font-size: 0.9rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #f8fafc;
    white-space: nowrap;
}

.catalog-price-sep {
    font-weight: 600;
    font-size: 0.72rem;
    color: #94a3b8;
}

.catalog-price-basis {
    font-size: 0.74rem;
    font-weight: 600;
    color: #94a3b8;
}

.catalog-price-promo {
    font-size: 0.74rem;
    font-weight: 600;
    color: #fde68a;
    max-width: 14rem;
    text-align: right;
    line-height: 1.35;
}

.catalog-price-muted {
    color: #475569;
}

.catalog-actions-td {
    text-align: right;
    vertical-align: middle;
}

.catalog-row-room + .catalog-row-category td,
.catalog-row-room + .catalog-row-product td {
    border-top: none;
}

.catalog-row-category + .catalog-row-product .catalog-product-cell {
    padding-left: 0.35rem;
}

.catalog-vis-badge {
    display: inline-block;
    padding: 0.18rem 0.48rem;
    border-radius: 0.4rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.catalog-vis-badge.is-public {
    background: linear-gradient(135deg, rgb(34 211 238 / 0.28), rgb(14 165 233 / 0.12));
    color: #a5f3fc;
    border: 1px solid rgb(34 211 238 / 0.35);
}

.catalog-vis-badge.is-operator {
    background: linear-gradient(135deg, rgb(251 191 36 / 0.28), rgb(245 158 11 / 0.1));
    color: #fde68a;
    border: 1px solid rgb(251 191 36 / 0.35);
}

.catalog-vis-badge--compact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    padding: 0;
    border-radius: 0.4rem;
    font-size: 0.85rem;
    text-transform: none;
    letter-spacing: 0;
}

.catalog-vis-badge--compact span {
    line-height: 1;
}

/* —— Area Clienti —— */
.area-clienti-hero {
    margin-bottom: 1rem;
}

.area-clienti-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: 0.65rem 0.8rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(165deg, rgb(30 41 59 / 0.5) 0%, rgb(15 23 42 / 0.35) 100%);
}

.area-clienti-search {
    flex: 1;
    min-width: 12rem;
}

.area-clienti-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: 0.5rem;
}

.area-clienti-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
    padding: 0.6rem 0.7rem 0.5rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(165deg, rgb(30 41 59 / 0.5) 0%, rgb(15 23 42 / 0.4) 100%);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.05) inset;
    transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}

.area-clienti-card:hover {
    border-color: rgb(34 211 238 / 0.45);
    transform: translateY(-1px);
    box-shadow:
        0 0 0 1px rgb(34 211 238 / 0.12),
        0 8px 20px rgb(2 6 23 / 0.35);
}

.area-clienti-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem;
    min-width: 0;
    padding-right: 0.15rem;
}

.area-clienti-card-title {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.25;
    color: #f8fafc;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.area-clienti-card-contact {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    margin: 0;
}

.area-clienti-card-contact--empty {
    font-size: 0.78rem;
    color: #64748b;
}

.area-clienti-card-line {
    display: block;
    font-size: 0.76rem;
    font-weight: 500;
    line-height: 1.3;
    color: #94a3b8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.area-clienti-card-email {
    color: #cbd5e1;
}

.area-clienti-card-phone {
    font-variant-numeric: tabular-nums;
}

.area-clienti-card-cta {
    margin-top: auto;
    padding-top: 0.15rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #67e8f9;
}

.area-clienti-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.area-clienti-page-btn {
    font-size: 0.85rem;
    color: #67e8f9;
    text-decoration: none;
}

.area-clienti-page-btn.is-disabled {
    color: #475569;
    pointer-events: none;
}

.area-clienti-detail-hero {
    margin-bottom: 1.1rem;
    padding: 1rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(165deg, rgb(15 23 42 / 0.9), rgb(2 6 23 / 0.72));
}

.area-clienti-detail-hero h2 {
    margin: 0.2rem 0 0.35rem;
    font-size: clamp(1.45rem, 2.2vw, 1.85rem);
    line-height: 1.15;
    color: #f8fafc;
}

.area-clienti-detail-surname {
    color: #67e8f9;
}

.area-clienti-detail-contacts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.15rem;
    font-size: 0.92rem;
    color: #cbd5e1;
}

.area-clienti-detail-contact {
    color: #cbd5e1;
    text-decoration: none;
}

.area-clienti-detail-contact:hover {
    color: #a5f3fc;
}

.area-clienti-detail-contact.is-empty {
    color: #64748b;
}

.area-clienti-hero-vrc-link {
    display: inline-flex;
    align-items: center;
    margin-top: 0.55rem;
    font-size: 0.83rem;
    font-weight: 700;
    color: #22d3ee;
    text-decoration: none;
}

.area-clienti-hero-vrc-link:hover {
    color: #67e8f9;
    text-decoration: underline;
}

.area-clienti-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18.5rem, 1fr));
    gap: 0.9rem;
}

.area-clienti-detail-grid--scheda {
    grid-template-columns: minmax(16rem, 1fr) minmax(18rem, 1.15fr) minmax(14rem, 0.85fr) minmax(15rem, 0.9fr);
    grid-template-areas:
        "identity identity identity identity"
        "anagrafica fidelity accredita tessere"
        "anagrafica fidelity accredita tessere"
        "bookings bookings bookings bookings";
    align-items: start;
}

.area-clienti-detail-grid--scheda > .client-identity-card {
    grid-area: identity;
}

.area-clienti-detail-grid--scheda > .area-clienti-detail-anagrafica {
    grid-area: anagrafica;
}

.area-clienti-detail-grid--scheda > .area-clienti-detail-fidelity {
    grid-area: fidelity;
}

.area-clienti-detail-grid--scheda > .area-clienti-detail-accredita {
    grid-area: accredita;
    align-self: start;
}

.area-clienti-detail-grid--scheda > .area-clienti-detail-tessere {
    grid-area: tessere;
}

.area-clienti-detail-grid--scheda > .area-clienti-detail-panel--bookings {
    grid-area: bookings;
}

.area-clienti-detail-panel--tessere .membership-showcase-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

.area-clienti-detail-panel--tessere .membership-showcase-card-wrap .membership-physical-face {
    aspect-ratio: 1.586;
}

.area-clienti-detail-panel--tessere .membership-card-flip {
    max-width: 100%;
}

.area-clienti-detail-panel--tessere .membership-showcase-lead {
    display: none;
}

@media (max-width: 768px) {
    .area-clienti-detail-panel--tessere .membership-card-flip {
        max-width: 100%;
        touch-action: manipulation;
    }

    .area-clienti-detail-panel--tessere .membership-showcase-caption {
        text-align: center;
        align-items: center;
    }

    .area-clienti-detail-panel--tessere .membership-physical-print-link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .area-clienti-tessere-head {
        flex-wrap: wrap;
    }

    .area-clienti-tessere-assign {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
}

.area-clienti-bookings-table-wrap {
    overflow-x: auto;
    margin-top: 0.35rem;
}

.area-clienti-bookings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.area-clienti-bookings-table th {
    text-align: left;
    padding: 0.55rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    border-bottom: 1px solid rgb(51 65 85 / 0.8);
}

.area-clienti-bookings-table td {
    padding: 0.6rem 0.65rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.45);
    color: #e2e8f0;
    vertical-align: top;
}

.area-clienti-bookings-table tbody tr:hover {
    background: rgb(15 23 42 / 0.45);
}

.area-clienti-bookings-when {
    white-space: nowrap;
    color: #cbd5e1;
}

.area-clienti-bookings-amount {
    font-weight: 700;
    white-space: nowrap;
}

.area-clienti-bookings-status {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.area-clienti-bookings-status--paid {
    color: #4ade80;
}

.area-clienti-bookings-status--partial {
    color: #fbbf24;
}

.area-clienti-bookings-status--unpaid {
    color: #f87171;
}

.area-clienti-bookings-empty {
    text-align: center;
    color: #94a3b8;
    padding: 1.25rem !important;
}

@media (max-width: 1180px) {
    .area-clienti-detail-grid--scheda {
        grid-template-columns: repeat(auto-fit, minmax(18.5rem, 1fr));
        grid-template-areas: none;
    }

    .area-clienti-detail-grid--scheda > .client-identity-card,
    .area-clienti-detail-grid--scheda > .area-clienti-detail-anagrafica,
    .area-clienti-detail-grid--scheda > .area-clienti-detail-fidelity,
    .area-clienti-detail-grid--scheda > .area-clienti-detail-accredita,
    .area-clienti-detail-grid--scheda > .area-clienti-detail-tessere,
    .area-clienti-detail-grid--scheda > .area-clienti-detail-panel--bookings {
        grid-area: auto;
    }
}

.area-clienti-detail-grid--no-fidelity {
    grid-template-columns: minmax(16rem, 1fr) minmax(15rem, 0.95fr);
    grid-template-areas:
        "identity identity"
        "anagrafica tessere"
        "bookings bookings";
}

.area-clienti-detail-panel {
    padding: 1rem 1.05rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.78);
    background: linear-gradient(175deg, rgb(15 23 42 / 0.78), rgb(2 6 23 / 0.62));
    box-shadow: inset 0 1px 0 rgb(148 163 184 / 0.06);
}

.area-clienti-detail-panel h3 {
    margin: 0 0 0.75rem;
    font-size: 0.98rem;
    letter-spacing: 0.01em;
    color: #f1f5f9;
}

.area-clienti-detail-dl {
    display: grid;
    gap: 0.35rem;
    margin: 0;
}

.area-clienti-detail-dl dt {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.area-clienti-detail-dl dd {
    margin: 0;
    font-size: 0.93rem;
    color: #e2e8f0;
}

.area-clienti-flash {
    padding: 0.55rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(16 185 129 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
    font-size: 0.85rem;
}

.area-clienti-flash--error {
    border-color: rgb(248 113 113 / 0.4);
    background: rgb(239 68 68 / 0.1);
    color: #fecaca;
}

.area-clienti-flash--warn {
    border-color: rgb(251 191 36 / 0.45);
    background: rgb(251 191 36 / 0.12);
    color: #fcd34d;
}

.area-clienti-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.btn-area-clienti-new {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.9rem;
    border-radius: 0.5rem;
    border: none;
    background: linear-gradient(180deg, #22d3ee, #06b6d4);
    color: #0f172a;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.btn-area-clienti-new:hover {
    filter: brightness(1.06);
}

.area-clienti-create-form {
    max-width: 32rem;
    display: grid;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: rgb(15 23 42 / 0.55);
}

.area-clienti-create-field {
    display: grid;
    gap: 0.35rem;
}

.area-clienti-create-label {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.area-clienti-create-optional {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    opacity: 0.75;
}

.area-clienti-create-input {
    width: 100%;
    border-radius: 0.55rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(2 6 23 / 0.65);
    color: #f8fafc;
    font-size: 0.92rem;
    padding: 0.55rem 0.7rem;
}

.area-clienti-create-textarea {
    min-height: 4.5rem;
    resize: vertical;
}

.area-clienti-create-hint {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #64748b;
}

.area-clienti-create-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-top: 0.25rem;
}

.area-clienti-create-cancel {
    font-size: 0.85rem;
    color: #94a3b8;
    text-decoration: none;
}

.area-clienti-create-cancel:hover {
    color: #e2e8f0;
}

.area-clienti-hub-total {
    margin: 0 0 1rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: #94a3b8;
}

.area-clienti-sede-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    gap: 0.85rem;
    align-items: stretch;
}

.area-clienti-sede-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.85rem;
    min-height: 9.5rem;
    padding: 1rem 1.05rem;
    border-radius: 0.85rem;
    border: 1px solid #334155;
    background: linear-gradient(165deg, rgb(15 23 42 / 0.92), rgb(2 6 23 / 0.75));
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}

.area-clienti-sede-card:hover {
    border-color: rgb(34 211 238 / 0.55);
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgb(0 0 0 / 0.35);
}

.area-clienti-sede-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.area-clienti-sede-card-kicker {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.area-clienti-sede-card-name {
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.2;
    color: #f8fafc;
}

.area-clienti-sede-card-meta {
    font-size: 0.72rem;
    line-height: 1.4;
    color: #94a3b8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.area-clienti-sede-card-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgb(51 65 85 / 0.65);
}

.area-clienti-sede-card-count {
    margin: 0;
    font-size: 0.8rem;
    color: #94a3b8;
}

.area-clienti-sede-card-count strong {
    font-size: 1.05rem;
    font-weight: 800;
    color: #67e8f9;
}

.area-clienti-sede-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.35rem 0.65rem;
    border-radius: 0.45rem;
    font-size: 0.72rem;
    font-weight: 800;
    color: #0f172a;
    background: rgb(34 211 238 / 0.9);
}

.area-clienti-sede-card:hover .area-clienti-sede-card-cta {
    background: #22d3ee;
}

.area-clienti-footnote {
    margin-top: 1.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgb(51 65 85 / 0.45);
}

/* —— Cassa sala (registra vendita) —— */
.sale-studio {
    border-radius: 1rem;
    border: 1px solid rgb(34 211 238 / 0.22);
    background: rgb(15 23 42 / 0.55);
    overflow: hidden;
    box-shadow: 0 16px 40px rgb(0 0 0 / 0.25);
}

.sale-studio-form {
    display: block;
}

.sale-studio-body {
    display: grid;
    grid-template-columns: 1fr min(19rem, 34%);
    gap: 1.15rem;
    padding: 1.1rem 1.15rem 1.15rem;
}

@media (max-width: 900px) {
    .sale-studio-body {
        grid-template-columns: 1fr;
    }
}

.sale-studio-block {
    margin-bottom: 0.85rem;
    padding: 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid #1e293b;
    background: rgb(2 6 23 / 0.5);
}

.sale-studio-submit {
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.65rem;
    border: none;
    border-radius: 0.65rem;
    background: #22d3ee;
    color: #0f172a;
    font-weight: 800;
    cursor: pointer;
}

.sale-studio-empty {
    padding: 2rem;
    text-align: center;
    color: #64748b;
}

/* —— Recovery: pricing walk-in, cassa, calendario, area clienti —— */

.walkin-pricing {
    margin-top: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.45);
}

.walkin-pricing-head {
    margin-bottom: 0.65rem;
}

.walkin-pricing-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #f1f5f9;
}

.walkin-pricing-lead {
    margin: 0.25rem 0 0;
    font-size: 0.8rem;
    color: #94a3b8;
}

.walkin-pricing-listino {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.walkin-pricing-listino-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.walkin-pricing-listino-value {
    font-size: 1.15rem;
    color: #67e8f9;
}

.walkin-pricing-formula {
    font-size: 0.72rem;
    color: #94a3b8;
}

.walkin-discount-type {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}

.walkin-discount-pill {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    border: 1px solid #334155;
    background: rgb(15 23 42 / 0.6);
    font-size: 0.8rem;
    font-weight: 600;
    color: #cbd5e1;
    cursor: pointer;
}

.walkin-discount-pill.is-active,
.walkin-discount-pill:has(input:checked) {
    border-color: rgb(34 211 238 / 0.5);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
}

.walkin-discount-pill input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.walkin-input-mono {
    font-family: var(--vrc-font-mono);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.client-identity-card {
    grid-column: 1 / -1;
    margin-bottom: 0.5rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid rgb(34 211 238 / 0.28);
    background: linear-gradient(145deg, rgb(15 23 42 / 0.95), rgb(8 47 73 / 0.35));
}

.client-identity-card h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 700;
    color: #a5f3fc;
}

.client-identity-lead {
    margin: 0 0 0.85rem;
    font-size: 0.82rem;
    color: #94a3b8;
    max-width: 42rem;
}

.client-identity-body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.client-identity-qr {
    display: block;
    width: 200px;
    height: 200px;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.8);
    background: #fff;
}

.client-identity-code-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
}

.client-identity-code {
    font-family: var(--vrc-font-mono);
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #f8fafc;
}

.client-identity-copy {
    border: 1px solid rgb(34 211 238 / 0.45);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
    border-radius: 999px;
    padding: 0.4rem 0.85rem;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.client-identity-copy:hover {
    background: rgb(34 211 238 / 0.2);
}

.operator-customer-suggest-code {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgb(34 211 238 / 0.14);
    color: #7dd3fc;
    font-family: var(--vrc-font-mono);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.walkin-discount-fields {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.walkin-pricing-final {
    margin-top: 0.35rem;
}

.walkin-pricing-summary {
    margin: 0.5rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
}

.walkin-pricing-summary--compact {
    margin-top: 0.35rem;
}

.walkin-pricing-cell {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.walkin-pricing-k {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.walkin-pricing-cell--total strong,
.walkin-pricing-cell strong {
    color: #67e8f9;
}

.walkin-input-xs {
    padding: 0.35rem 0.45rem !important;
    font-size: 0.78rem !important;
    min-height: auto !important;
}

.walkin-input-total {
    font-weight: 800;
}

.walkin-discount-reason {
    width: 100%;
    margin-top: 0.35rem;
}

.walkin-product-vis {
    font-size: 0.65rem;
    margin-left: 0.25rem;
}

.walkin-product-card-basis {
    font-size: 0.65rem;
    font-weight: 600;
    opacity: 0.85;
}

.walkin-compact-product {
    margin: 0.35rem 0;
}

.walkin-mini-cal-nav,
.walkin-mini-cal-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}

.walkin-mini-cal-nav button,
.walkin-mini-cal-pad button {
    border: none;
    border-radius: 0.4rem;
    background: rgb(51 65 85 / 0.5);
    color: #e2e8f0;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    font-size: 0.75rem;
}

.walkin-mini-cal-week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.15rem;
    margin-bottom: 0.25rem;
    font-size: 0.6rem;
    font-weight: 700;
    color: #64748b;
    text-align: center;
}

.walkin-date-trigger-icon {
    opacity: 0.7;
}

/* Calendario — intestazione pagina */
.operator-cal-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.operator-cal-page-title {
    margin: 0.35rem 0 0;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 800;
    color: #f8fafc;
}

.operator-cal-page-lead {
    margin: 0.35rem 0 0;
    max-width: 42rem;
    font-size: 0.9rem;
    color: #94a3b8;
    line-height: 1.45;
}

.operator-cal-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.operator-cal-mode-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.operator-cal-mode-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.5), rgb(15 23 42 / 0.35));
    font-size: 0.88rem;
    font-weight: 700;
    color: #94a3b8;
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background 0.15s, box-shadow 0.15s;
}

.operator-cal-mode-tab:hover {
    border-color: rgb(34 211 238 / 0.45);
    color: #e2e8f0;
    background: linear-gradient(180deg, rgb(51 65 85 / 0.45), rgb(15 23 42 / 0.5));
}

.operator-cal-mode-tab.is-active {
    border-color: rgb(34 211 238 / 0.55);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.2), rgb(14 165 233 / 0.08));
    color: #a5f3fc;
    box-shadow: 0 4px 16px rgb(34 211 238 / 0.12);
}

.operator-cal-nav-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.55);
    background: linear-gradient(135deg, rgb(30 41 59 / 0.45), rgb(15 23 42 / 0.35));
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
}

.operator-cal-granularity {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.2rem;
    border-radius: 0.55rem;
    background: rgb(2 6 23 / 0.65);
    border: 1px solid #334155;
}

.operator-cal-gran-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.25rem;
    padding: 0.4rem 0.75rem;
    border-radius: 0.45rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: #94a3b8;
    text-decoration: none;
}

.operator-cal-gran-btn:hover {
    color: #e2e8f0;
}

.operator-cal-gran-btn.is-active {
    background: rgb(34 211 238 / 0.18);
    color: #a5f3fc;
}

.operator-cal-month-title-wrap {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    min-width: 10rem;
}

.operator-cal-month-label {
    margin: 0;
    text-align: center;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #f8fafc;
}

.operator-cal-today-link {
    font-size: 0.72rem;
    font-weight: 700;
    color: #67e8f9;
    text-decoration: none;
}

.operator-cal-today-link:hover {
    color: #a5f3fc;
    text-decoration: underline;
}

.operator-cal-month-arrows {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.operator-cal-arrow-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.55rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.55);
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 700;
    color: #cbd5e1;
    text-decoration: none;
}

.operator-cal-arrow-btn:hover {
    border-color: rgb(34 211 238 / 0.5);
    color: #a5f3fc;
    background: rgb(34 211 238 / 0.1);
}

.operator-cal-panel {
    padding: 0.85rem 0.95rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: linear-gradient(180deg, rgb(15 23 42 / 0.92) 0%, rgb(2 6 23 / 0.98) 100%);
    box-shadow:
        0 0 0 1px rgb(15 23 42 / 0.8) inset,
        0 12px 28px rgb(2 6 23 / 0.4);
}

.operator-cal-nav-bar--list {
    margin-bottom: 1rem;
    background: linear-gradient(105deg, rgb(34 211 238 / 0.1) 0%, rgb(15 23 42 / 0.55) 100%);
    border-color: rgb(34 211 238 / 0.22);
}

.operator-cal-prenota-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.1rem;
    border: none;
    border-radius: 0.65rem;
    font-size: 0.88rem;
    font-weight: 800;
    color: #0f172a;
    cursor: pointer;
    background: linear-gradient(135deg, #22d3ee 0%, #06b6d4 55%, #0891b2 100%);
    box-shadow:
        0 0 0 1px rgb(34 211 238 / 0.35) inset,
        0 6px 20px rgb(34 211 238 / 0.28);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.operator-cal-prenota-btn:hover {
    transform: translateY(-1px);
    box-shadow:
        0 0 0 1px rgb(103 232 249 / 0.45) inset,
        0 10px 24px rgb(34 211 238 / 0.35);
}

/* Cassa / lista prenotazioni */
.pos-register {
    min-width: 0;
}

.pos-register-inner {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pos-register-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

@media (max-width: 720px) {
    .pos-register-summary {
        grid-template-columns: 1fr;
    }
}

.pos-register-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(165deg, rgb(30 41 59 / 0.55) 0%, rgb(15 23 42 / 0.35) 100%);
    box-shadow: 0 1px 0 rgb(148 163 184 / 0.06) inset;
}

.pos-register-stat.is-alert {
    border-color: rgb(251 191 36 / 0.45);
    background: linear-gradient(165deg, rgb(251 191 36 / 0.14) 0%, rgb(15 23 42 / 0.45) 100%);
    box-shadow:
        0 1px 0 rgb(253 224 71 / 0.12) inset,
        0 0 24px rgb(251 191 36 / 0.08);
}

.pos-register-stat-label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.pos-register-stat.is-alert .pos-register-stat-label {
    color: #fde68a;
}

.pos-register-stat-value {
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.1;
    color: #f8fafc;
    font-variant-numeric: tabular-nums;
}

.pos-register-stat-hint {
    font-size: 0.84rem;
    font-weight: 600;
    color: #cbd5e1;
}

.pos-register-stat.is-alert .pos-register-stat-hint {
    color: #fef3c7;
}

.pos-register-filters {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.3rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.5), rgb(15 23 42 / 0.35));
    width: fit-content;
    max-width: 100%;
}

.pos-register-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.9rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    font-size: 0.84rem;
    font-weight: 700;
    color: #94a3b8;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.pos-register-filter:hover {
    color: #e2e8f0;
    background: rgb(51 65 85 / 0.35);
}

.pos-register-filter.is-active {
    border-color: rgb(34 211 238 / 0.45);
    background: linear-gradient(135deg, rgb(34 211 238 / 0.22), rgb(14 165 233 / 0.1));
    color: #a5f3fc;
    box-shadow: 0 1px 10px rgb(34 211 238 / 0.15);
}

.pos-register-list {
    display: grid;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pos-register-item {
    margin: 0;
    padding: 0;
}

.pos-register-item .operator-booking-row {
    border-radius: 0.7rem;
    background: linear-gradient(90deg, rgb(15 23 42 / 0.85) 0%, rgb(30 41 59 / 0.35) 100%);
}

.pos-register-item .operator-booking-row:hover {
    background: linear-gradient(90deg, rgb(34 211 238 / 0.06) 0%, rgb(30 41 59 / 0.45) 100%);
}

.pos-register-empty-item {
    list-style: none;
}

.pos-register-empty {
    margin: 0;
    padding: 1.35rem 1rem;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    color: #94a3b8;
    border-radius: 0.65rem;
    border: 1px dashed rgb(100 116 139 / 0.45);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.25), rgb(15 23 42 / 0.2));
}

/* Cassa sala */
.sale-summary-grid--bar {
    display: grid;
    grid-template-columns: repeat(2, minmax(10rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.15rem;
}

.sale-summary-grid--bar .sale-summary-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 5.5rem;
    margin: 0;
    padding: 0.85rem 1rem !important;
}

.sale-summary-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.sale-summary-value {
    display: block;
    margin-top: 0.35rem;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 800;
    line-height: 1;
    color: #67e8f9;
}

.page-hero--sale {
    margin-bottom: 1rem;
}

.sale-flash-ok {
    margin-bottom: 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(16 185 129 / 0.4);
    background: rgb(16 185 129 / 0.1);
    color: #6ee7b7;
    font-size: 0.88rem;
}

.sale-field {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.sale-field-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #94a3b8;
}

.sale-field-hero {
    position: relative;
}

.sale-product-panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sale-product-category {
    display: grid;
    gap: 0.5rem;
}

.sale-product-category-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
}

.sale-product-category-title {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #94a3b8;
}

.sale-product-category-hint {
    margin: 0;
    font-size: 0.72rem;
    color: #64748b;
}

.sale-product-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: 0.55rem;
}

.sale-studio-block--products {
    border-color: rgb(124 58 237 / 0.22);
}

.sale-field-room {
    margin-bottom: 0.35rem;
}

.sale-room-select-visible {
    width: 100%;
    max-width: 22rem;
}

.sale-room-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.sale-room-tab {
    padding: 0.4rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    background: #020617;
    color: #94a3b8;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.sale-room-tab.is-active {
    border-color: rgb(34 211 238 / 0.5);
    background: rgb(34 211 238 / 0.12);
    color: #a5f3fc;
}

.sale-room-badge {
    display: inline-block;
    margin-bottom: 0.65rem;
    padding: 0.25rem 0.6rem;
    border-radius: 0.4rem;
    background: rgb(34 211 238 / 0.12);
    color: #67e8f9;
    font-size: 0.75rem;
    font-weight: 700;
}

.sale-product-panels {
    display: grid;
    gap: 0.65rem;
}

.sale-product-card {
    min-height: 5.5rem;
}

.sale-studio-block--pay {
    border-color: rgb(34 211 238 / 0.28);
    background: rgb(34 211 238 / 0.05);
}

.sale-studio-block--pay .sale-studio-block-head p {
    color: #94a3b8;
}

.sale-studio-submit {
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    font-size: 0.95rem;
    box-shadow: 0 10px 28px rgb(34 211 238 / 0.25);
}

.sale-studio-submit:hover {
    filter: brightness(1.06);
}

.sale-amount-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.sale-studio-step {
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.5rem;
    font-weight: 800;
    font-size: 0.85rem;
    color: #0f172a;
    background: #22d3ee;
    flex-shrink: 0;
}

.sale-studio-block-head {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    margin-bottom: 0.75rem;
}

.sale-studio-block-head h4 {
    margin: 0;
    font-size: 0.95rem;
}

.sale-studio-block-head p {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

.sale-on-duty {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
}

.sale-studio-receipt {
    padding: 1rem;
    border-radius: 0.75rem;
    border: 1px solid #334155;
    background: rgb(2 6 23 / 0.65);
    align-self: start;
    position: sticky;
    top: 1rem;
}

.sale-receipt-head {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.sale-receipt-total {
    margin: 0.35rem 0 0.75rem;
    font-size: 1.75rem;
    font-weight: 800;
    color: #67e8f9;
}

.sale-receipt-lines {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    font-size: 0.82rem;
}

.sale-receipt-lines dt {
    color: #64748b;
    font-size: 0.65rem;
    text-transform: uppercase;
}

.sale-receipt-lines dd {
    margin: 0.1rem 0 0;
    color: #e2e8f0;
    font-weight: 600;
}

.sale-receipt-foot {
    margin: 0.85rem 0 0;
    font-size: 0.72rem;
    color: #94a3b8;
    line-height: 1.4;
}

.sale-catalog-details {
    margin-top: 1.5rem;
    padding: 1rem;
    border-radius: 0.75rem;
    border: 1px solid #1e293b;
}

.sale-catalog-lead {
    margin: 0.5rem 0 1rem;
    font-size: 0.85rem;
    color: #94a3b8;
}

.sale-recent-wrap {
    margin-top: 1.25rem;
}

.sale-recent-title {
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
}

.sale-recent-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.sale-recent-item {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    font-size: 0.8rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid #1e293b;
}

.sale-recent-who {
    font-weight: 600;
    color: #e2e8f0;
}

.sale-recent-what {
    color: #94a3b8;
}

.sale-recent-meta {
    color: #64748b;
    text-align: right;
}

/* —— Tema chiaro: Portale economico · Cassa sala —— */
html.theme-light .vms-portal-cassa .sale-studio,
html.theme-light .sale-studio {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
    box-shadow:
        0 1px 2px rgb(15 23 42 / 0.04),
        0 12px 32px rgb(124 58 237 / 0.06) !important;
}

html.theme-light .sale-studio-block {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .sale-studio-block--pay {
    background: #ecfeff !important;
    border-color: #a5f3fc !important;
}

html.theme-light .sale-studio-block-head h4 {
    color: #0f172a !important;
}

html.theme-light .sale-studio-block-head p,
html.theme-light .sale-on-duty {
    color: #64748b !important;
}

html.theme-light .sale-studio-step {
    background: #7c3aed !important;
    color: #ffffff !important;
}

html.theme-light .sale-field-label {
    color: #475569 !important;
}

html.theme-light .sale-room-tab {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #64748b !important;
}

html.theme-light .sale-room-tab:hover {
    border-color: #94a3b8 !important;
    color: #334155 !important;
}

html.theme-light .sale-room-tab.is-active {
    background: #ede9fe !important;
    border-color: #8b5cf6 !important;
    color: #5b21b6 !important;
}

html.theme-light .sale-room-badge {
    background: #ede9fe !important;
    color: #6d28d9 !important;
}

html.theme-light .sale-studio-receipt {
    background: #ffffff !important;
    border-color: #ddd6fe !important;
    box-shadow: 0 4px 16px rgb(124 58 237 / 0.08) !important;
}

html.theme-light .sale-receipt-head {
    color: #64748b !important;
}

html.theme-light .sale-receipt-total {
    color: #0891b2 !important;
}

html.theme-light .sale-receipt-lines dt {
    color: #64748b !important;
}

html.theme-light .sale-receipt-lines dd {
    color: #0f172a !important;
}

html.theme-light .sale-receipt-foot {
    color: #64748b !important;
}

html.theme-light .sale-receipt-foot strong {
    color: #334155 !important;
}

html.theme-light .sale-studio-submit {
    background: #0891b2 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgb(8 145 178 / 0.25) !important;
}

html.theme-light .sale-studio-submit:hover {
    background: #0e7490 !important;
    filter: none !important;
}

html.theme-light .payment-split-block--sale {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .sale-pay-live-box {
    background: #ecfeff !important;
    border-color: #a5f3fc !important;
}

html.theme-light .sale-pay-live-box .booking-pay-live {
    color: #0e7490 !important;
}

html.theme-light .booking-pay-live.is-complete {
    color: #047857 !important;
}

html.theme-light .vms-portal .walkin-product-card.is-selected,
html.theme-light .vms-portal .walkin-product-card:has(.walkin-product-radio:checked),
html.theme-light .vms-portal-cassa .walkin-product-card.is-selected,
html.theme-light .vms-portal-cassa .walkin-product-card:has(.walkin-product-radio:checked) {
    border-color: #8b5cf6 !important;
    background: #f5f3ff !important;
    box-shadow: 0 0 0 1px rgb(139 92 246 / 0.2) !important;
}

html.theme-light .vms-portal .walkin-product-card.is-selected .walkin-product-card-price,
html.theme-light .vms-portal-cassa .walkin-product-card.is-selected .walkin-product-card-price {
    color: #6d28d9 !important;
}

html.theme-light .sale-catalog-details {
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .sale-catalog-lead {
    color: #64748b !important;
}

html.theme-light .sale-recent-item {
    border-bottom-color: #e2e8f0 !important;
}

html.theme-light .sale-recent-who {
    color: #0f172a !important;
}

html.theme-light .sale-recent-what,
html.theme-light .sale-recent-meta {
    color: #64748b !important;
}

html.theme-light .sale-flash-ok {
    background: #ecfdf5 !important;
    border-color: #6ee7b7 !important;
    color: #047857 !important;
}

html.theme-light .sale-summary-label {
    color: #64748b !important;
}

html.theme-light .sale-summary-value {
    color: #0891b2 !important;
}

html.theme-light .sale-studio-empty {
    color: #64748b !important;
}

html.theme-light .vms-portal-cassa .walkin-input,
html.theme-light .vms-portal-cassa .walkin-textarea,
html.theme-light .sale-studio .walkin-input,
html.theme-light .sale-studio .walkin-textarea {
    background: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

html.theme-light .vms-portal-cassa .walkin-input:focus,
html.theme-light .sale-studio .walkin-input:focus {
    border-color: #8b5cf6 !important;
    box-shadow: 0 0 0 3px rgb(139 92 246 / 0.15) !important;
}

html.theme-light .booking-payment-split-row {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

html.theme-light .booking-pay-add {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #334155 !important;
}

html.theme-light .booking-pay-add:hover {
    background: #e2e8f0 !important;
}

/* Area Clienti — dettaglio e hub */
.area-clienti-breadcrumb {
    font-size: 0.85rem;
    color: #94a3b8;
}

.area-clienti-back {
    color: #67e8f9;
    text-decoration: none;
}

.area-clienti-detail-sep {
    margin: 0 0.35rem;
    opacity: 0.5;
}

.area-clienti-breadcrumb-current {
    font-weight: 700;
    color: #e2e8f0;
}

.area-clienti-count {
    font-size: 0.82rem;
    font-weight: 600;
    color: #cbd5e1;
    margin: 0;
    white-space: nowrap;
}

.area-clienti-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    flex: 1;
    min-width: 14rem;
}

.area-clienti-search-input {
    flex: 1;
    min-width: 10rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(51 65 85 / 0.7);
    background: rgb(2 6 23 / 0.65);
    color: #f1f5f9;
    font-size: 0.88rem;
    padding: 0.5rem 0.65rem;
}

.area-clienti-search-btn {
    padding: 0.5rem 0.9rem;
    border-radius: 0.5rem;
    border: none;
    background: #22d3ee;
    color: #0f172a;
    font-weight: 700;
    cursor: pointer;
}

.area-clienti-search-reset {
    align-self: center;
    font-size: 0.8rem;
    color: #94a3b8;
}

.area-clienti-empty {
    padding: 2rem;
    text-align: center;
    color: #64748b;
    grid-column: 1 / -1;
}

.area-clienti-card-vrc {
    flex-shrink: 0;
    font-size: 0.85rem;
    line-height: 1;
    opacity: 0.95;
}

.area-clienti-vrc-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.area-clienti-vrc-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(6.2rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.8rem;
}

.area-clienti-vrc-metrics div {
    display: grid;
    gap: 0.2rem;
    padding: 0.45rem 0.5rem;
    border-radius: 0.55rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(2 6 23 / 0.55);
}

.area-clienti-vrc-metrics span {
    font-size: 0.61rem;
    color: #64748b;
    text-transform: uppercase;
}

.area-clienti-vrc-metrics strong {
    font-size: 1.03rem;
    line-height: 1.1;
    color: #e2e8f0;
}

.area-clienti-vrc-progress {
    margin: 0 0 0.65rem;
    padding: 0.45rem 0.55rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(34 211 238 / 0.22);
    background: rgb(34 211 238 / 0.08);
    font-size: 0.83rem;
    color: #bae6fd;
}

.area-clienti-vrc-portal {
    margin-left: auto;
    font-size: 0.78rem;
    color: #22d3ee;
}

.area-clienti-subtitle {
    margin: 1rem 0 0.35rem;
    font-size: 0.85rem;
    color: #94a3b8;
}

.area-clienti-mission-list,
.area-clienti-ledger-list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: #cbd5e1;
}

.area-clienti-accredita-form {
    display: grid;
    gap: 0.6rem;
}

.area-clienti-accredita-form label {
    display: grid;
    gap: 0.25rem;
    font-size: 0.8rem;
    color: #cbd5e1;
}

.area-clienti-accredita-form input {
    min-height: 2.1rem;
    border-radius: 0.52rem;
    border: 1px solid rgb(51 65 85 / 0.85);
    background: rgb(2 6 23 / 0.82);
    color: #e2e8f0;
    padding: 0.48rem 0.62rem;
}

.area-clienti-accredita-form button {
    justify-self: start;
    min-height: 2.05rem;
    padding: 0.45rem 0.95rem;
    border: none;
    border-radius: 0.5rem;
    background: #22d3ee;
    color: #0f172a;
    font-weight: 700;
    cursor: pointer;
}

@media (max-width: 700px) {
    .area-clienti-detail-hero {
        padding: 0.85rem 0.9rem;
    }

    .area-clienti-detail-contacts {
        font-size: 0.86rem;
    }

    .area-clienti-detail-grid {
        grid-template-columns: 1fr;
    }
}

.area-clienti-scope-banner {
    margin-bottom: 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(34 211 238 / 0.25);
    background: rgb(34 211 238 / 0.08);
    font-size: 0.85rem;
}

.area-clienti-scope-banner-label {
    font-weight: 700;
    color: #a5f3fc;
}

.area-clienti-scope-banner-hint {
    display: block;
    margin-top: 0.2rem;
    color: #94a3b8;
    font-size: 0.78rem;
}

.operator-cliente-profile-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.65rem;
    border-radius: 0.45rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.1);
    color: #67e8f9;
    font-size: 0.72rem;
    font-weight: 700;
    text-decoration: none;
}

.operator-cliente-profile-btn--compact {
    padding: 0.25rem 0.5rem;
    font-size: 0.68rem;
}

@media (max-width: 720px) {
    .sale-amount-row,
    .sale-product-category-grid {
        grid-template-columns: 1fr;
    }

    .sale-recent-item {
        grid-template-columns: 1fr;
    }
}

@media print {
    .sidebar,
    .room-report-filters,
    .room-report-hero-actions,
    .operator-report-teaser {
        display: none !important;
    }
    .room-report {
        max-width: none;
    }
}

/* —— UX globale app —— */
html.theme-dark body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.app-main {
    min-width: 0;
    background: #020617;
}

.app-page {
    width: 100%;
    max-width: 88rem;
    margin: 0 auto;
}

.app-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    min-height: 4.75rem;
    padding: 1.1rem 1.75rem;
    border-bottom: 1px solid rgb(34 211 238 / 0.18);
    background:
        linear-gradient(90deg, rgb(34 211 238 / 0.06) 0%, transparent 28%),
        linear-gradient(180deg, rgb(15 23 42 / 0.98) 0%, rgb(2 6 23 / 0.96) 100%);
    box-shadow:
        0 8px 28px rgb(2 6 23 / 0.55),
        0 1px 0 rgb(255 255 255 / 0.05) inset;
}

.app-topbar-brand {
    gap: 1rem;
    min-width: 0;
}

.app-topbar-titles {
    min-width: 0;
}

.app-topbar-title {
    margin: 0;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #f8fafc;
}

.app-topbar-sub {
    margin: 0.25rem 0 0;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.35;
    color: #94a3b8;
}

.app-topbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.app-topbar-logout-form {
    margin: 0;
    display: inline;
}

.app-topbar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.65rem;
    padding: 0.55rem 1.05rem;
    border-radius: 0.65rem;
    border: 1px solid rgb(51 65 85 / 0.85);
    background: linear-gradient(180deg, rgb(30 41 59 / 0.85), rgb(15 23 42 / 0.9));
    color: #e2e8f0;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s, transform 0.12s;
    box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
}

.app-topbar-btn:hover,
.app-topbar-btn:focus-visible {
    border-color: rgb(100 116 139 / 0.9);
    color: #f8fafc;
    background: linear-gradient(180deg, rgb(51 65 85 / 0.75), rgb(30 41 59 / 0.85));
    outline: none;
}

.app-topbar-btn--portal {
    border-color: rgb(139 92 246 / 0.45);
    background: linear-gradient(135deg, rgb(124 58 237 / 0.55), rgb(109 40 217 / 0.35));
    color: #f5f3ff;
    box-shadow: 0 4px 16px rgb(124 58 237 / 0.25);
}

.app-topbar-btn--portal:hover,
.app-topbar-btn--portal:focus-visible {
    border-color: rgb(167 139 250 / 0.6);
    background: linear-gradient(135deg, rgb(139 92 246 / 0.7), rgb(124 58 237 / 0.45));
    color: #fff;
}

.app-topbar-btn--primary {
    border-color: rgb(34 211 238 / 0.45);
    background: linear-gradient(135deg, #22d3ee, #0891b2);
    color: #0f172a;
    box-shadow: 0 4px 14px rgb(34 211 238 / 0.3);
}

.app-topbar-btn--icon {
    min-width: 2.65rem;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
}

/* Modifica home: penna sempre visibile; X e ✓ solo mentre si riordina */
.app-topbar-actions .home-edit-cancel,
.app-topbar-actions .home-edit-confirm {
    display: none !important;
}

body.home-editing .app-topbar-actions .home-edit-cancel,
body.home-editing .app-topbar-actions .home-edit-confirm {
    display: inline-flex !important;
}

body.home-editing .app-topbar-actions .home-edit-toggle {
    display: none !important;
}

.app-topbar-btn--logout {
    border-color: rgb(71 85 105 / 0.7);
    color: #cbd5e1;
}

.app-topbar-btn--logout:hover {
    border-color: rgb(248 113 113 / 0.45);
    color: #fecaca;
    background: linear-gradient(180deg, rgb(127 29 29 / 0.35), rgb(15 23 42 / 0.9));
}

html.theme-light .app-main {
    background: #f3f4f6;
}

html.theme-light .app-topbar {
    border-bottom-color: #dbe4f0;
    background:
        linear-gradient(90deg, rgb(34 211 238 / 0.08) 0%, transparent 32%),
        linear-gradient(180deg, #ffffff, #f8fafc);
    box-shadow: 0 4px 18px rgb(15 23 42 / 0.08);
}

html.theme-light .app-topbar-title {
    color: #0f172a;
}

html.theme-light .app-topbar-sub {
    color: #64748b;
}

html.theme-light .app-topbar-btn {
    border-color: #cbd5e1;
    background: #ffffff;
    color: #334155;
}

html.theme-light .app-topbar-btn:hover,
html.theme-light .app-topbar-btn:focus-visible {
    background: #f1f5f9;
    color: #0f172a;
}

@media (max-width: 720px) {
    .app-topbar {
        padding: 0.85rem 1rem;
        min-height: auto;
    }

    .app-topbar-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

html.theme-light .important-docs-section-bar {
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    border-color: #dbe4f0;
}

html.theme-light .important-doc-section-select {
    background: #fff;
    border-color: #cbd5e1;
    color: #0f172a;
}

html.theme-light .important-doc-section-label {
    color: #64748b;
}

html.theme-dark .p-6 > .rounded-2xl,
html.theme-dark .p-6 > .border {
    border-color: #334155;
}

html.theme-light .p-6 > .rounded-2xl,
html.theme-light .p-6 > .border,
html.theme-light .p-6 > .rounded-2xl.border-slate-800 {
    border-color: #e2e8f0 !important;
}

html.theme-light .p-6 > .rounded-2xl.bg-slate-900,
html.theme-light .p-6 > .rounded-2xl.border-slate-800 {
    background: #fff !important;
}

/* Modalità spettatore — sola lettura dashboard admin */
body.spectator-mode .app-page a,
body.spectator-mode .app-page button,
body.spectator-mode .app-page input,
body.spectator-mode .app-page select,
body.spectator-mode .app-page textarea,
body.spectator-mode .app-page label[for],
body.spectator-mode .app-page summary,
body.spectator-mode .app-page [role="button"],
body.spectator-mode .app-page iframe,
body.spectator-mode .page-hero-actions,
body.spectator-mode .icon-action,
body.spectator-mode .row-actions {
    pointer-events: none !important;
    cursor: not-allowed !important;
}

body.spectator-mode .app-page a,
body.spectator-mode .app-page button {
    opacity: 0.55;
}

body.spectator-mode aside.sidebar a[href],
body.spectator-mode aside.sidebar .sidebar-toggle,
body.spectator-mode .app-topbar form[action="/logout"],
body.spectator-mode .app-topbar form[action="/logout"] button {
    pointer-events: auto !important;
    cursor: pointer !important;
    opacity: 1 !important;
}

.spectator-mode-banner {
    margin: 0;
    padding: 0.75rem 1.5rem;
    background: linear-gradient(90deg, rgba(245, 158, 11, 0.15), rgba(251, 191, 36, 0.08));
    border-bottom: 1px solid rgba(245, 158, 11, 0.35);
    color: #fde68a;
    font-size: 0.875rem;
}

html.theme-light .spectator-mode-banner {
    background: linear-gradient(90deg, #fff7ed, #fffbeb);
    border-bottom-color: #fcd34d;
    color: #92400e;
}

.hub-storage-alert {
    margin: 0;
    padding: 0.85rem 1.5rem;
    background: linear-gradient(90deg, rgb(239 68 68 / 0.18), rgb(239 68 68 / 0.08));
    border-bottom: 1px solid rgb(239 68 68 / 0.35);
    color: #fecaca;
    font-size: 0.875rem;
}

.hub-storage-alert strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #fee2e2;
}

.hub-storage-alert-hint {
    margin: 0.45rem 0 0;
    opacity: 0.92;
    font-size: 0.8rem;
}

.hub-storage-alert code {
    font-size: 0.78rem;
}

.hub-storage-alert--ok {
    background: linear-gradient(90deg, rgb(34 197 94 / 0.18), rgb(34 197 94 / 0.08));
    border-bottom-color: rgb(34 197 94 / 0.35);
    color: #bbf7d0;
}

.assign-membership-page {
    max-width: 960px;
    margin: 0 auto;
    padding: 1.5rem 1rem 2.5rem;
}

.assign-membership-header h1 {
    font-size: 1.65rem;
    font-weight: 800;
    color: #e2e8f0;
    margin: 0 0 0.35rem;
}

.assign-membership-lead {
    color: #94a3b8;
    margin: 0 0 1.25rem;
    font-size: 0.92rem;
}

.assign-membership-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    margin-bottom: 1rem;
}

.assign-membership-fieldset {
    border: 1px solid rgb(34 211 238 / 0.25);
    border-radius: 0.85rem;
    padding: 1rem;
    background: rgb(15 23 42 / 0.55);
}

.assign-membership-fieldset legend {
    padding: 0 0.35rem;
    color: #67e8f9;
    font-weight: 700;
    font-size: 0.82rem;
}

.assign-membership-fieldset label {
    display: block;
    margin-bottom: 0.75rem;
    font-size: 0.82rem;
    color: #cbd5e1;
}

.assign-membership-fieldset input,
.assign-membership-fieldset select {
    display: block;
    width: 100%;
    margin-top: 0.3rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.55rem;
    border: 1px solid rgb(51 65 85);
    background: #020617;
    color: #f8fafc;
}

.assign-membership-preview {
    min-height: 3rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.55rem;
    border: 1px dashed rgb(34 211 238 / 0.3);
    background: rgb(2 6 23 / 0.6);
    margin-bottom: 0.65rem;
    font-size: 0.88rem;
}

.assign-membership-quick {
    margin-bottom: 0.5rem;
}

.assign-membership-quick-hint {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    color: #fbbf24;
}

.assign-membership-quick-fields {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: 1fr 1fr;
}

.assign-membership-quick-fields label {
    margin-bottom: 0;
}

.assign-membership-optional {
    color: #64748b;
    font-weight: 400;
}

.assign-membership-quick-tag {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #fbbf24;
    margin-right: 0.25rem;
}

.assign-membership-quick-toggle {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: #67e8f9;
    font-size: 0.78rem;
    text-decoration: underline;
    cursor: pointer;
}

.assign-membership-quick-toggle:hover {
    color: #a5f3fc;
}

@media (max-width: 520px) {
    .assign-membership-quick-fields {
        grid-template-columns: 1fr;
    }
}

/* Tessera fisica Gold / Platinum — stampa con QR nel reparto bianco (retro) */
.membership-physical-print-body {
    margin: 0;
    padding: 1.25rem;
    background: #0f172a;
    color: #e2e8f0;
    font-family: var(--vrc-font-body);
}

.membership-physical-print-toolbar {
    max-width: 920px;
    margin: 0 auto 1.25rem;
}

.membership-physical-print-actions {
    display: flex;
    gap: 0.65rem;
    margin: 0.75rem 0;
}

.membership-physical-print-actions button {
    border: none;
    border-radius: 0.55rem;
    padding: 0.55rem 1rem;
    font-weight: 700;
    cursor: pointer;
    background: linear-gradient(90deg, #0891b2, #22d3ee);
    color: #0f172a;
}

.membership-physical-print-actions button.is-secondary {
    background: rgb(51 65 85);
    color: #e2e8f0;
}

.membership-physical-print-hint {
    font-size: 0.85rem;
    color: #94a3b8;
    margin: 0;
}

.membership-physical-print-sheet {
    max-width: 920px;
    margin: 0 auto;
}

.membership-physical-pair-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.membership-physical-face {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgb(0 0 0 / 0.45);
    aspect-ratio: 1.586;
    background: #020617;
}

.membership-physical-art {
    position: absolute;
    inset: 0;
    background-image: url('/membership-cards/sheet.jpg?v=tessere1');
    background-size: 200% 200%;
    background-repeat: no-repeat;
    background-color: #0b1220;
}

.membership-physical-qr-slot {
    position: absolute;
    left: 6.5%;
    right: 6.5%;
    bottom: 3.2%;
    height: 17.5%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 2.5% 0 3%;
    box-sizing: border-box;
    pointer-events: none;
}

.membership-physical-qr-stack {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    width: 100%;
    height: 100%;
    min-width: 0;
}

.membership-physical-qr-slot img,
.membership-physical-qr-img {
    display: block;
    flex: 0 0 auto;
    width: auto;
    height: 100%;
    max-height: 100%;
    max-width: 38%;
    aspect-ratio: 1;
    object-fit: contain;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-sizing: border-box;
}

.membership-physical-code {
    flex: 1;
    min-width: 0;
    font-family: var(--vrc-font-mono);
    font-size: clamp(0.62rem, 2.4vw, 0.92rem);
    font-weight: 800;
    color: #000;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-align: left;
    align-self: center;
    white-space: normal;
    word-break: break-all;
    text-shadow: none;
}

html.theme-dark .membership-physical-qr-slot .membership-physical-code,
html.theme-light .membership-physical-qr-slot .membership-physical-code {
    color: #000;
}

.membership-physical-preview {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    align-items: flex-end;
}

.membership-physical-preview-card {
    width: min(220px, 100%);
}

.membership-physical-preview-card .membership-physical-face {
    aspect-ratio: 1.586;
}

.membership-physical-preview-meta {
    flex: 1;
    min-width: 180px;
    font-size: 0.85rem;
}

.membership-physical-print-link {
    display: inline-block;
    margin-top: 0.35rem;
    color: #67e8f9;
    font-weight: 600;
}

@media print {
    .no-print {
        display: none !important;
    }

    .membership-physical-print-body {
        padding: 0;
        background: #fff;
    }

    .membership-physical-pair-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8mm;
    }

    .membership-physical-face {
        break-inside: avoid;
        box-shadow: none;
        border: 0.2mm solid #cbd5e1;
    }
}

/* Showcase tessere — player, staff, area clienti */
.membership-showcase {
    margin: 0 0 1.25rem;
}

.membership-showcase-heading {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    color: #e2e8f0;
}

.membership-showcase-lead {
    margin: 0 0 1rem;
    font-size: 0.88rem;
    color: #94a3b8;
    line-height: 1.45;
}

.membership-showcase-grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.membership-showcase-item {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.membership-showcase-card-wrap {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 10px 32px rgb(0 0 0 / 0.35);
}

.membership-showcase-card-wrap .membership-physical-face {
    box-shadow: none;
    border-radius: 0;
}

.membership-showcase-pair {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: 1fr 1fr;
}

.membership-showcase-pair .membership-physical-face {
    box-shadow: 0 8px 24px rgb(0 0 0 / 0.3);
}

/* Tessera unica — flip fronte/retro */
.membership-card-flip {
    display: block;
    width: 100%;
    max-width: min(100%, 300px);
    margin: 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    perspective: 1200px;
    position: relative;
    text-align: left;
    -webkit-tap-highlight-color: transparent;
}

.membership-card-flip:focus-visible {
    outline: 2px solid rgb(34 211 238 / 0.75);
    outline-offset: 4px;
    border-radius: 14px;
}

.membership-card-flip-inner {
    display: block;
    position: relative;
    width: 100%;
    transform-style: preserve-3d;
    transition: transform 0.55s cubic-bezier(0.4, 0.2, 0.2, 1);
    aspect-ratio: 1.586;
}

.membership-card-flip.is-flipped .membership-card-flip-inner,
.membership-card-flip.is-hover-flipped .membership-card-flip-inner {
    transform: rotateY(180deg);
}

.membership-card-flip-face {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: 14px;
    overflow: hidden;
}

.membership-card-flip-face--back {
    transform: rotateY(180deg);
}

.membership-card-flip-face .membership-physical-face {
    width: 100%;
    height: 100%;
    box-shadow: 0 12px 40px rgb(0 0 0 / 0.45);
}

.membership-card-flip-hint {
    position: absolute;
    right: 0.45rem;
    bottom: 0.45rem;
    z-index: 3;
    pointer-events: none;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #e2e8f0;
    background: rgb(15 23 42 / 0.72);
    border: 1px solid rgb(148 163 184 / 0.35);
    opacity: 0.92;
    transition: opacity 0.2s ease;
}

.membership-card-flip-hint--touch {
    display: none;
}

.membership-card-flip.is-flipped .membership-card-flip-hint,
.membership-card-flip.is-hover-flipped .membership-card-flip-hint {
    opacity: 0.35;
}

@media (max-width: 768px) {
    .membership-showcase-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .membership-card-flip {
        max-width: 100%;
        width: 100%;
        touch-action: manipulation;
    }

    .membership-showcase-pair {
        grid-template-columns: 1fr;
    }

    .membership-card-flip-hint {
        font-size: 0.72rem;
        padding: 0.35rem 0.65rem;
    }
}

@media (hover: none) and (pointer: coarse) {
    .membership-card-flip-hint--desktop {
        display: none;
    }

    .membership-card-flip-hint--touch {
        display: block;
    }
}

.membership-showcase-lock {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    background: linear-gradient(180deg, rgb(2 6 23 / 0.15), rgb(2 6 23 / 0.72));
    backdrop-filter: blur(2px);
}

.membership-showcase-lock-icon {
    font-size: 2rem;
    line-height: 1;
    filter: drop-shadow(0 2px 8px rgb(0 0 0 / 0.5));
}

.membership-showcase-lock-text {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fef3c7;
    text-shadow: 0 2px 12px rgb(0 0 0 / 0.6);
}

.membership-showcase-caption {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
    color: #cbd5e1;
}

.membership-showcase-caption strong {
    color: #f8fafc;
    font-size: 0.95rem;
}

.membership-showcase-price {
    color: #67e8f9;
    font-weight: 600;
}

.membership-showcase-instore {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: #94a3b8;
}

.membership-showcase-status {
    color: #4ade80;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
}

.membership-showcase-remaining strong {
    color: #22d3ee;
    font-size: 1.35rem;
}

.membership-showcase-detail-link {
    display: inline-block;
    margin-top: 0.25rem;
    color: #67e8f9;
    font-weight: 600;
    font-size: 0.82rem;
}

.membership-showcase--staff {
    margin-bottom: 1.5rem;
    padding: 1rem;
    border: 1px solid rgb(34 211 238 / 0.22);
    border-radius: 0.85rem;
    background: rgb(8 47 73 / 0.2);
}

.area-clienti-tessere-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.area-clienti-tessere-assign {
    font-size: 0.82rem;
    font-weight: 700;
    color: #67e8f9;
    text-decoration: none;
}

.area-clienti-detail-panel--bookings {
    margin-top: 0.15rem;
}

.assign-membership-price-block {
    margin-top: 0.35rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgb(51 65 85 / 0.55);
    display: grid;
    gap: 0.65rem;
}

.assign-membership-price-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.assign-membership-price-label {
    font-size: 0.78rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.assign-membership-list-price {
    color: #a5f3fc;
    font-size: 1.05rem;
}

.assign-membership-justify textarea {
    min-height: 4.2rem;
    resize: vertical;
}

.assign-membership-prep-notice {
    padding: 0.75rem 0.85rem;
    border-radius: 0.7rem;
    border: 1px solid rgb(251 191 36 / 0.35);
    background: rgb(251 191 36 / 0.08);
    color: #fde68a;
    font-size: 0.84rem;
}

.assign-membership-prep-title {
    margin: 0 0 0.35rem;
    font-weight: 700;
    color: #fcd34d;
}

.assign-membership-prep-list {
    margin: 0 0 0.45rem;
    padding-left: 1.1rem;
}

.assign-membership-prep-hint {
    margin: 0;
    color: #fbbf24;
    font-size: 0.8rem;
}

.assign-membership-summary {
    border: 1px solid rgb(34 211 238 / 0.28);
    border-radius: 0.85rem;
    padding: 1rem;
    margin-bottom: 1rem;
    background: rgb(8 47 73 / 0.25);
}

.assign-membership-summary h3 {
    margin: 0 0 0.65rem;
    color: #e2e8f0;
    font-size: 1rem;
}

.assign-membership-summary-dl {
    display: grid;
    gap: 0.45rem;
    margin: 0;
}

.assign-membership-summary-dl div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.88rem;
}

.assign-membership-summary-dl dt {
    color: #94a3b8;
}

.assign-membership-summary-dl dd {
    margin: 0;
    color: #f1f5f9;
    font-weight: 600;
}

.assign-membership-submit {
    width: 100%;
    padding: 0.85rem 1rem;
    border: none;
    border-radius: 0.75rem;
    background: linear-gradient(90deg, #0891b2, #22d3ee);
    color: #0f172a;
    font-weight: 800;
    font-size: 0.95rem;
    cursor: pointer;
}

/* Tema chiaro — tessere / assegna tessera */
html.theme-light .assign-membership-header h1 {
    color: #0f172a;
}

html.theme-light .assign-membership-lead {
    color: #475569;
}

html.theme-light .assign-membership-fieldset {
    border-color: #dbe4f0;
    background: #ffffff;
    box-shadow: 0 2px 12px rgb(15 23 42 / 0.05);
}

html.theme-light .assign-membership-fieldset legend {
    color: #6d28d9;
}

html.theme-light .assign-membership-fieldset label {
    color: #334155;
}

html.theme-light .assign-membership-fieldset input,
html.theme-light .assign-membership-fieldset select,
html.theme-light .assign-membership-fieldset textarea {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #0f172a;
}

html.theme-light .assign-membership-preview {
    border-color: #c4b5fd;
    background: #faf5ff;
    color: #334155;
}

html.theme-light .assign-membership-preview .text-slate-500 {
    color: #64748b !important;
}

html.theme-light .assign-membership-quick-hint {
    color: #b45309;
}

html.theme-light .assign-membership-quick-tag {
    color: #b45309;
}

html.theme-light .assign-membership-quick-toggle {
    color: #6d28d9;
}

html.theme-light .assign-membership-quick-toggle:hover {
    color: #5b21b6;
}

html.theme-light .assign-membership-price-block {
    border-top-color: #e2e8f0;
}

html.theme-light .assign-membership-price-label {
    color: #64748b;
}

html.theme-light .assign-membership-list-price {
    color: #6d28d9;
}

html.theme-light .assign-membership-prep-notice {
    border-color: #fcd34d;
    background: #fffbeb;
    color: #78350f;
}

html.theme-light .assign-membership-prep-title {
    color: #92400e;
}

html.theme-light .assign-membership-prep-hint {
    color: #a16207;
}

html.theme-light .assign-membership-summary {
    border-color: #dbe4f0;
    background: #f8fafc;
}

html.theme-light .assign-membership-summary h3 {
    color: #0f172a;
}

html.theme-light .assign-membership-summary-dl dt {
    color: #64748b;
}

html.theme-light .assign-membership-summary-dl dd {
    color: #0f172a;
}

html.theme-light .assign-membership-submit {
    background: linear-gradient(90deg, #7c3aed, #6d28d9);
    color: #ffffff;
}

html.theme-light .membership-showcase--staff {
    border-color: #e9d5ff;
    background: #faf5ff;
}

html.theme-light .membership-showcase-heading {
    color: #0f172a;
}

html.theme-light .membership-showcase-lead {
    color: #475569;
}

html.theme-light .membership-showcase-caption {
    color: #475569;
}

html.theme-light .membership-showcase-caption strong {
    color: #0f172a;
}

html.theme-light .membership-showcase-price {
    color: #6d28d9;
}

html.theme-light .membership-showcase-instore {
    color: #64748b;
}

html.theme-light .membership-showcase-status {
    color: #047857;
}

html.theme-light .membership-showcase-remaining strong {
    color: #6d28d9;
}

html.theme-light .membership-showcase-detail-link,
html.theme-light .membership-showcase-assign-link,
html.theme-light .area-clienti-tessere-assign {
    color: #6d28d9;
}

html.theme-light .membership-showcase-detail-link:hover,
html.theme-light .membership-showcase-assign-link:hover,
html.theme-light .area-clienti-tessere-assign:hover {
    color: #5b21b6;
}

html.theme-light .membership-showcase-card-wrap {
    box-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
}

html.theme-light .hub-storage-alert {
    background: linear-gradient(90deg, #fef2f2, #fff1f2);
    border-bottom-color: #fca5a5;
    color: #991b1b;
}

html.theme-light .hub-storage-alert strong {
    color: #7f1d1d;
}

.hub-storage-alert--conflict {
    background: linear-gradient(90deg, rgb(245 158 11 / 0.22), rgb(245 158 11 / 0.1));
    border-bottom-color: rgb(245 158 11 / 0.4);
    color: #fde68a;
}

.hub-storage-alert--conflict strong {
    color: #fef3c7;
}

html.theme-light .hub-storage-alert--conflict {
    background: linear-gradient(90deg, #fffbeb, #fef3c7);
    border-bottom-color: #fcd34d;
    color: #92400e;
}

html.theme-light .hub-storage-alert--conflict strong {
    color: #78350f;
}

.marketing-hub-page .marketing-kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.marketing-kpi {
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid rgb(148 163 184 / 0.2);
    background: rgb(15 23 42 / 0.65);
}

.marketing-kpi span {
    display: block;
    font-size: 0.75rem;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}

.marketing-kpi strong {
    font-size: 1.35rem;
    color: #e2e8f0;
}

.marketing-summary-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
}

.marketing-summary-card {
    border: 1px solid rgb(148 163 184 / 0.18);
    border-radius: 1rem;
    padding: 1rem;
    background: rgb(15 23 42 / 0.55);
}

.marketing-summary-card h3 {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.marketing-table-wrap {
    overflow-x: auto;
}

.marketing-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.marketing-table th,
.marketing-table td {
    padding: 0.45rem 0.5rem;
    border-bottom: 1px solid rgb(148 163 184 / 0.12);
    text-align: left;
}

.marketing-providers-wrap {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.75rem;
}

.marketing-provider-block {
    border: 1px solid rgb(148 163 184 / 0.15);
    border-radius: 0.75rem;
    padding: 0.65rem 0.85rem;
    background: rgb(2 6 23 / 0.35);
}

.marketing-provider-block summary {
    cursor: pointer;
    list-style: none;
}

.marketing-profile-grid {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.5rem;
}

html.theme-light .marketing-kpi,
html.theme-light .marketing-summary-card,
html.theme-light .marketing-provider-block {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .marketing-kpi strong {
    color: #0f172a;
}

.spectator-mode-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(245, 158, 11, 0.15);
    color: #fbbf24;
    border: 1px solid rgba(245, 158, 11, 0.35);
}

html.theme-light .spectator-mode-pill {
    background: #fff7ed;
    color: #b45309;
    border-color: #fcd34d;
}

.login-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* Assistente interno staff */
.staff-assistant-config-fold {
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.staff-assistant-config-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    list-style: none;
}

.staff-assistant-config-summary::-webkit-details-marker {
    display: none;
}

.staff-assistant-config-summary-title {
    font-weight: 600;
}

.staff-assistant-config-summary-meta {
    font-size: 0.8rem;
    color: #94a3b8;
}

.staff-assistant-config-form {
    padding: 0 1.15rem 1.15rem;
    display: grid;
    gap: 0.85rem;
}

.staff-assistant-config-lead,
.staff-assistant-config-note {
    margin: 0;
    font-size: 0.85rem;
    color: #94a3b8;
    line-height: 1.45;
}

.staff-assistant-config-field {
    display: grid;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: #cbd5e1;
}

.staff-assistant-config-input {
    border-radius: 0.65rem;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(2, 6, 23, 0.85);
    color: #f1f5f9;
    padding: 0.65rem 0.75rem;
    font: inherit;
}

.staff-assistant-config-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #e2e8f0;
}

.staff-assistant-config-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.staff-assistant-config-advanced {
    font-size: 0.85rem;
    color: #67e8f9;
    text-decoration: none;
}

.staff-assistant-config-advanced:hover {
    text-decoration: underline;
}

.staff-assistant-flash {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.9rem;
}

.staff-assistant-flash--ok {
    background: rgba(16, 185, 129, 0.12);
    border: 1px solid rgba(16, 185, 129, 0.35);
    color: #6ee7b7;
}

.staff-assistant-flash--err {
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.35);
    color: #fca5a5;
}

.staff-assistant-msg--thinking .staff-assistant-msg-body {
    opacity: 0.75;
    font-style: italic;
}

.staff-assistant-layout {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    align-items: stretch;
}

@media (max-width: 960px) {
    .staff-assistant-layout {
        grid-template-columns: 1fr;
    }
}

.staff-assistant-side-title {
    margin: 1.25rem 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.staff-assistant-status {
    padding: 0.75rem 0.9rem;
    border-radius: 0.75rem;
    font-size: 0.85rem;
    line-height: 1.45;
    border: 1px solid rgba(148, 163, 184, 0.25);
}

.staff-assistant-status--ok {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.35);
    color: #6ee7b7;
}

.staff-assistant-status--warn {
    background: rgba(245, 158, 11, 0.1);
    border-color: rgba(245, 158, 11, 0.35);
    color: #fcd34d;
}

.staff-assistant-tips {
    margin: 0;
    padding-left: 1.1rem;
    color: #cbd5e1;
    font-size: 0.9rem;
    line-height: 1.5;
}

.staff-assistant-examples {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.staff-assistant-example {
    text-align: left;
    padding: 0.65rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(148, 163, 184, 0.25);
    background: rgba(15, 23, 42, 0.65);
    color: #e2e8f0;
    font-size: 0.82rem;
    line-height: 1.4;
    cursor: pointer;
}

.staff-assistant-example:hover {
    border-color: rgba(34, 211, 238, 0.45);
    background: rgba(8, 47, 73, 0.55);
}

.staff-assistant-note {
    margin-top: 1rem;
    font-size: 0.8rem;
    color: #94a3b8;
}

.asia-avatar {
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
    display: block;
    flex-shrink: 0;
    background: #020617;
}

.asia-avatar--xs {
    width: 1.25rem;
    height: 1.25rem;
    box-shadow: 0 0 0 1px rgb(34 211 238 / 0.35);
}

.asia-avatar--md {
    width: 2.75rem;
    height: 2.75rem;
    box-shadow:
        0 0 0 2px rgb(34 211 238 / 0.35),
        0 6px 16px rgb(6 182 212 / 0.22);
}

.staff-assistant-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgb(148 163 184 / 0.14);
    background: linear-gradient(90deg, rgb(34 211 238 / 0.08), transparent);
}

.staff-assistant-head-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: #a5f3fc;
    line-height: 1.2;
}

.staff-assistant-head-sub {
    font-size: 0.72rem;
    color: #94a3b8;
}

.staff-assistant-chat {
    display: flex;
    flex-direction: column;
    min-height: 28rem;
    max-height: calc(100vh - 12rem);
}

.staff-assistant-messages {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.staff-assistant-msg {
    max-width: 85%;
    padding: 0.75rem 0.9rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(148, 163, 184, 0.2);
}

.staff-assistant-msg--user {
    align-self: flex-end;
    background: rgba(34, 211, 238, 0.12);
    border-color: rgba(34, 211, 238, 0.35);
}

.staff-assistant-msg--bot {
    align-self: flex-start;
    background: rgba(15, 23, 42, 0.75);
}

.staff-assistant-msg-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}

.staff-assistant-msg-body {
    white-space: pre-wrap;
    line-height: 1.5;
    font-size: 0.92rem;
}

.staff-assistant-msg-body .asia-md-link,
.asia-md-link {
    color: #67e8f9;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.staff-assistant-msg-body .asia-md-link:hover {
    color: #a5f3fc;
}

html.theme-light .staff-assistant-msg-body .asia-md-link {
    color: #0e7490;
}

.staff-assistant-compose {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.65rem;
    padding: 0.85rem 1rem 1rem;
    border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.staff-assistant-compose textarea {
    resize: vertical;
    min-height: 3rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(2, 6, 23, 0.85);
    color: #f1f5f9;
    padding: 0.65rem 0.75rem;
    font: inherit;
}

.staff-assistant-send {
    align-self: end;
    border: none;
    border-radius: 0.75rem;
    padding: 0.7rem 1.1rem;
    font-weight: 600;
    background: #22d3ee;
    color: #0f172a;
    cursor: pointer;
}

.staff-assistant-send:disabled {
    opacity: 0.55;
    cursor: wait;
}

html.theme-light .staff-assistant-example {
    background: #fff;
    color: #334155;
    border-color: #e2e8f0;
}

html.theme-light .staff-assistant-msg--bot {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .staff-assistant-compose textarea {
    background: #fff;
    color: #172033;
    border-color: #cbd5e1;
}

/* —— Shell mobile: overlay menu, topbar, contenuti (solo ≤1023px / ≤720px) —— */
.mobile-nav-backdrop,
.mobile-menu-toggle {
    display: none;
}

@media (max-width: 1023px) {
    .mobile-nav-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 75;
        border: 0;
        padding: 0;
        margin: 0;
        background: rgb(2 6 23 / 0.62);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease;
        cursor: pointer;
    }

    body.sidebar-collapsed .mobile-nav-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 2.65rem;
        height: 2.65rem;
        border-radius: 0.65rem;
        border: 1px solid rgb(51 65 85 / 0.85);
        background: linear-gradient(180deg, rgb(30 41 59 / 0.85), rgb(15 23 42 / 0.9));
        color: #e2e8f0;
        font-size: 1.15rem;
        line-height: 1;
        cursor: pointer;
    }

    .mobile-menu-toggle:hover,
    .mobile-menu-toggle:focus-visible {
        border-color: rgb(34 211 238 / 0.45);
        outline: none;
    }

    body.sidebar-collapsed .mobile-menu-toggle {
        border-color: rgb(34 211 238 / 0.55);
        color: #67e8f9;
    }

    .app-main {
        width: 100%;
        min-height: 100vh;
        min-height: 100dvh;
    }

    .app-page.p-6 {
        padding: 1rem;
        padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    }

    .app-topbar {
        padding: 0.75rem 1rem;
        padding-top: calc(0.75rem + env(safe-area-inset-top, 0px));
        gap: 0.65rem 0.85rem;
        align-items: center;
    }

    .app-topbar .header-brand {
        min-width: 0;
        flex: 1 1 auto;
    }

    .header-logo {
        width: 2.65rem;
        height: 2.65rem;
    }

    .app-topbar-title {
        font-size: 1.05rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-topbar-sub {
        display: none;
    }

    .app-topbar > .flex.gap-2,
    .app-topbar-actions {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0.45rem;
    }

    .app-topbar > .flex.gap-2 > a,
    .app-topbar > .flex.gap-2 > button,
    .app-topbar > .flex.gap-2 > form,
    .app-topbar-actions > a,
    .app-topbar-actions > button,
    .app-topbar-actions > form {
        flex: 0 1 auto;
        min-width: 0;
    }

    .app-topbar > .flex.gap-2 a.rounded-lg,
    .app-topbar-actions a.rounded-lg {
        font-size: 0.78rem;
        padding: 0.45rem 0.65rem;
    }

    .dashboard-hero,
    .dashboard-hero.page-hero {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        padding: 1.1rem 1rem;
    }

    .page-hero-actions {
        width: 100%;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .page-hero-actions > * {
        flex: 1 1 auto;
        min-width: 0;
    }

    .back-to-top {
        bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
        z-index: 90;
    }

    .spectator-mode-banner {
        font-size: 0.82rem;
        padding: 0.65rem 1rem;
    }
}

@media (max-width: 720px) {
    .crm-board {
        grid-template-columns: 1fr !important;
        overflow-x: visible;
    }

    .requests-table-scroll {
        margin: 0 -0.25rem;
        border-radius: 0.75rem;
    }

    .users-table-panel,
    .requests-table-panel {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .wallet-cards-grid:not(.wallet-cards-grid--solo) {
        grid-template-columns: 1fr;
    }

    .staff-assistant-chat {
        min-height: 42vh;
        max-height: calc(100dvh - 9rem);
    }

    .staff-assistant-compose {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }

    .staff-assistant-send {
        width: 100%;
        justify-content: center;
    }

    .staff-assistant-example {
        font-size: 0.8rem;
    }

    .booking-portal-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .booking-portal-actions > * {
        width: 100%;
        text-align: center;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        max-width: 100%;
    }

    .grid.md\:grid-cols-2,
    .grid.md\:grid-cols-3,
    .grid.lg\:grid-cols-3,
    .grid.lg\:grid-cols-4 {
        grid-template-columns: 1fr !important;
    }

    .flex.gap-4,
    .flex.gap-6 {
        flex-wrap: wrap;
    }
}

@media (max-width: 480px) {
    .sidebar-brand-user {
        font-size: 0.78rem;
    }

    .app-topbar > .flex.gap-2 a.rounded-lg:not(.theme-icon-toggle),
    .app-topbar-actions a.rounded-lg:not(.theme-icon-toggle) {
        flex: 1 1 calc(50% - 0.35rem);
        text-align: center;
        justify-content: center;
    }

    .theme-icon-toggle {
        flex: 0 0 auto !important;
    }
}

/* —— Centralino · scelta sala calendario —— */
.centralino-sala-picker {
    margin-bottom: 0.25rem;
}

.operator-cal-shell.is-centralino .centralino-sala-picker .operator-home-sala-cards {
    grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
}

.operator-home-sala-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    margin-top: 0.45rem;
}

.operator-home-sala-card-link {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgb(51 65 85 / 0.95);
    background: rgb(15 23 42 / 0.75);
    font-size: 0.72rem;
    font-weight: 600;
    color: #cbd5e1;
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.operator-home-sala-card-link:hover {
    border-color: rgb(34 211 238 / 0.55);
    color: #a5f3fc;
}

.operator-home-sala-card-link--book {
    border-color: rgb(34 211 238 / 0.45);
    background: rgb(34 211 238 / 0.12);
    color: #67e8f9;
}

.operator-home-sala-card-link--book:hover {
    background: rgb(34 211 238 / 0.2);
    color: #cffafe;
}

.centralino-cassa-room-cal-link {
    color: inherit;
    text-decoration: none;
}

.centralino-cassa-room-cal-link:hover {
    color: rgb(196 181 253);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

/* —— Centralino · Cassa sale per sede —— */
.centralino-cassa-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.centralino-cassa-header {
    padding: 1.35rem 1.5rem;
    border-radius: 1.15rem;
    border: 1px solid rgb(139 92 246 / 0.28);
    background:
        radial-gradient(circle at top right, rgb(139 92 246 / 0.12), transparent 38%),
        linear-gradient(180deg, rgb(15 23 42 / 0.95), rgb(2 6 23 / 0.98));
}

.centralino-cassa-title {
    margin: 0.35rem 0 0;
    font-size: clamp(1.45rem, 2.5vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.centralino-cassa-lead {
    margin: 0.5rem 0 0;
    max-width: 42rem;
    color: #94a3b8;
    font-size: 0.92rem;
    line-height: 1.5;
}

.centralino-cassa-kpis {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.1rem;
}

.centralino-cassa-toolbar {
    position: sticky;
    top: 4.5rem;
    z-index: 12;
    padding: 0.85rem 1rem;
    border-radius: 0.9rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(15 23 42 / 0.92);
    backdrop-filter: blur(10px);
}

.centralino-cassa-customer-search {
    display: grid;
    gap: 0.65rem;
}

.centralino-cassa-customer-lead {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #94a3b8;
}

.centralino-cassa-customer-grid {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(9rem, 0.85fr) minmax(0, 1.6fr);
    align-items: end;
}

.centralino-cassa-customer {
    margin: 0;
}

.centralino-cassa-code-field {
    margin: 0;
}

@media (max-width: 720px) {
    .centralino-cassa-customer-grid {
        grid-template-columns: 1fr;
    }
}

.centralino-cassa-pass-panel {
    border-radius: 1.1rem;
    border: 1px solid rgb(251 191 36 / 0.35);
    background:
        radial-gradient(circle at top left, rgb(251 191 36 / 0.1), transparent 42%),
        linear-gradient(180deg, rgb(15 23 42 / 0.92), rgb(2 6 23 / 0.98));
    padding: 1.15rem 1.25rem;
}

.centralino-cassa-pass-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.centralino-cassa-pass-lead {
    margin: 0.35rem 0 0;
    max-width: 44rem;
    color: #94a3b8;
    font-size: 0.86rem;
    line-height: 1.45;
}

.centralino-cassa-pass-room {
    color: #cbd5e1;
}

.centralino-cassa-pass-room strong {
    color: #67e8f9;
    font-weight: 700;
}

.centralino-cassa-pass-grid {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

@media (min-width: 760px) {
    .centralino-cassa-pass-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.centralino-cassa-pass-preview {
    margin-top: 0.85rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.8rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.08);
    color: #e2e8f0;
    font-size: 0.86rem;
}

.centralino-cassa-pass-preview strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #67e8f9;
}

.centralino-cassa-pass-alert {
    margin-top: 0.85rem;
    padding: 0.85rem 0.95rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(251 113 133 / 0.55);
    background: rgb(251 113 133 / 0.14);
    color: #fecdd3;
    font-size: 0.86rem;
    line-height: 1.45;
    box-shadow: 0 0 0 1px rgb(251 113 133 / 0.12) inset;
}

.centralino-cassa-pass-alert[hidden] {
    display: none !important;
}

.centralino-cassa-pass-alert strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #fda4af;
    font-size: 0.92rem;
    letter-spacing: -0.01em;
}

.centralino-cassa-pass-alert p {
    margin: 0;
    color: #fecdd3;
}

.centralino-cassa-pass-actions {
    margin-top: 0.9rem;
}

.centralino-cassa-pass-submit {
    width: 100%;
    border: 0;
    border-radius: 0.85rem;
    padding: 0.85rem 1rem;
    font-size: 0.92rem;
    font-weight: 800;
    color: #0f172a;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    cursor: pointer;
}

.centralino-cassa-pass-submit:hover {
    filter: brightness(1.05);
}

.pass-code-control {
    display: flex;
    align-items: stretch;
    gap: 0.45rem;
}

.pass-code-control-input {
    flex: 1;
    min-width: 0;
    letter-spacing: 0.04em;
}

.pass-code-regen {
    flex: 0 0 2.75rem;
    display: grid;
    place-items: center;
    border-radius: 0.8rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.08);
    color: #67e8f9;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.pass-code-regen:hover {
    background: rgb(34 211 238 / 0.16);
    border-color: rgb(34 211 238 / 0.55);
}

.pass-code-regen:active {
    transform: scale(0.96);
}

.pass-code-regen.is-spinning .pass-code-regen-icon {
    animation: pass-code-spin 0.46s ease;
}

@keyframes pass-code-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(-360deg); }
}

.pass-code-hint {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.35;
}

.sale-field-pass-code[hidden] {
    display: none !important;
}

.centralino-cassa-rooms {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
}

.centralino-cassa-room {
    border-radius: 1.1rem;
    border: 1px solid rgb(51 65 85 / 0.85);
    background: linear-gradient(180deg, rgb(15 23 42 / 0.88), rgb(2 6 23 / 0.95));
    overflow: hidden;
    box-shadow: 0 18px 42px rgb(2 6 23 / 0.35);
}

.centralino-cassa-room-head {
    display: grid;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.65);
    background: linear-gradient(90deg, rgb(34 211 238 / 0.06), transparent 55%);
}

@media (min-width: 900px) {
    .centralino-cassa-room-head {
        grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.9fr);
        align-items: start;
    }
}

.centralino-cassa-room-title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.centralino-cassa-room-city {
    margin: 0.2rem 0 0;
    color: #67e8f9;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.centralino-cassa-room-address {
    margin: 0.45rem 0 0;
    color: #94a3b8;
    font-size: 0.86rem;
    line-height: 1.45;
}

.centralino-cassa-hours {
    width: 100%;
    font-size: 0.78rem;
    border-collapse: collapse;
}

.centralino-cassa-hours th,
.centralino-cassa-hours td {
    padding: 0.2rem 0;
    text-align: left;
    font-weight: 600;
}

.centralino-cassa-hours th {
    color: #64748b;
    width: 38%;
    font-weight: 700;
}

.centralino-cassa-on-duty {
    margin: 0.65rem 0 0;
    font-size: 0.8rem;
    color: #6ee7b7;
    line-height: 1.4;
}

.centralino-cassa-on-duty.is-empty {
    color: #fbbf24;
}

.centralino-cassa-room-body {
    display: grid;
    gap: 1.1rem;
    padding: 1.1rem 1.25rem 1.25rem;
}

@media (min-width: 1100px) {
    .centralino-cassa-room-body {
        grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
        align-items: start;
    }
}

.centralino-cassa-product-group + .centralino-cassa-product-group {
    margin-top: 1rem;
}

.centralino-cassa-product-group-title {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #94a3b8;
}

.centralino-cassa-product-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
}

.centralino-cassa-checkout {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.75);
    background: rgb(2 6 23 / 0.55);
}

.centralino-cassa-amounts {
    display: grid;
    gap: 0.65rem;
}

.sale-field-price-fixed {
    display: grid;
    gap: 0.25rem;
}

.centralino-cassa-price-value {
    display: block;
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgb(34 211 238 / 0.35);
    background: rgb(34 211 238 / 0.08);
    color: #67e8f9;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.sale-bonus-readonly {
    display: block;
    width: 100%;
    cursor: default;
    opacity: 0.95;
    background: rgb(15 23 42 / 0.65);
    border-color: rgb(51 65 85 / 0.55);
    color: #67e8f9;
    font-weight: 700;
    pointer-events: none;
}

.sale-bonus-hint {
    margin: 0.2rem 0 0;
    font-size: 0.68rem;
    line-height: 1.35;
    color: #94a3b8;
}

.centralino-cassa-submit {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 0;
    border-radius: 0.75rem;
    background: linear-gradient(180deg, #8b5cf6, #6d28d9);
    color: #fff;
    font-size: 0.92rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.centralino-cassa-submit:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgb(109 40 217 / 0.35);
}

.centralino-cassa-submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.centralino-cassa-empty {
    margin: 0;
    padding: 0.75rem 0;
    color: #94a3b8;
    font-size: 0.88rem;
}

html.theme-light .centralino-cassa-room {
    background: linear-gradient(180deg, #fff, #f8fafc);
    border-color: #dbe4f0;
}

html.theme-light .centralino-cassa-room-head {
    background: linear-gradient(90deg, rgb(34 211 238 / 0.08), transparent 55%);
    border-bottom-color: #e2e8f0;
}

html.theme-light .centralino-cassa-checkout {
    background: #f8fafc;
    border-color: #e2e8f0;
}

html.theme-light .centralino-cassa-toolbar {
    background: rgb(255 255 255 / 0.95);
    border-color: #dbe4f0;
}

/* Periodi di chiusura sala */
.room-closures-panel {
    scroll-margin-top: 5rem;
}

.room-closures-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.room-closures-badge {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #fcd34d;
    background: rgb(251 191 36 / 0.12);
    border: 1px solid rgb(251 191 36 / 0.35);
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
}

.room-closure-flash {
    margin-bottom: 0.85rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    font-size: 0.88rem;
}

.room-closure-flash--ok {
    color: #a7f3d0;
    background: rgb(16 185 129 / 0.12);
    border: 1px solid rgb(16 185 129 / 0.35);
}

.room-closure-flash--err {
    color: #fecaca;
    background: rgb(239 68 68 / 0.12);
    border: 1px solid rgb(239 68 68 / 0.35);
}

.room-closure-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgb(51 65 85 / 0.65);
}

.room-closure-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.room-closure-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: #94a3b8;
}

.room-closure-field-grow {
    grid-column: 1 / -1;
}

.room-closure-all-day {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.86rem;
    color: #cbd5e1;
}

.room-closure-submit {
    align-self: flex-start;
    border-radius: 0.75rem;
    background: #22d3ee;
    color: #0f172a;
    font-weight: 700;
    padding: 0.55rem 1rem;
}

.room-closure-hint,
.room-closure-readonly-hint {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
}

.room-closure-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.room-closure-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.85rem;
    border: 1px solid rgb(51 65 85 / 0.65);
    background: rgb(15 23 42 / 0.55);
}

.room-closure-item.is-past {
    opacity: 0.55;
}

.room-closure-item-main {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.room-closure-item-range {
    font-size: 0.84rem;
    color: #fcd34d;
}

.room-closure-item-note {
    margin: 0.15rem 0 0;
    font-size: 0.8rem;
    color: #94a3b8;
}

.room-closure-delete-btn {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(239 68 68 / 0.35);
    background: rgb(239 68 68 / 0.12);
    color: #fca5a5;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.room-closure-empty {
    padding: 0.75rem;
    color: #64748b;
    font-size: 0.88rem;
}

.centralino-hours-closures {
    margin-top: 0.5rem;
}

@media (max-width: 720px) {
    .room-closure-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .centralino-cassa-toolbar {
        top: 3.75rem;
    }

    .centralino-cassa-product-grid {
        grid-template-columns: 1fr;
    }

    .centralino-cassa-room-body {
        padding: 0.9rem;
    }
}

