/* ═══ SIDEBAR — BAGNOPLAN (Navy + Giallo) ═══ */

/* ── Demo Banner ── */
.demo-banner { position:fixed; top:0; left:0; right:0; height:36px; background:#F2C917; display:flex; align-items:center; justify-content:center; gap:10px; z-index:200; font-family:'DM Sans',sans-serif; font-size:13px; font-weight:600; color:#1B2A4A; padding:0 16px; }
.demo-banner-text { display:inline; }
.demo-banner-text-mobile { display:none; }
.demo-banner-cta { background:#1B2A4A; color:white; padding:3px 12px; border-radius:5px; text-decoration:none; font-size:12px; font-weight:700; cursor:pointer; transition:all 0.2s; }
.demo-banner-cta:hover { background:#243358; }

/* ── Layout ── */
.app-layout { display:flex; min-height:100vh; }

/* ── Sidebar ── */
.sidebar { width:300px; background:#1B2A4A; position:fixed; top:36px; left:0; bottom:0; display:flex; flex-direction:column; z-index:100; overflow-y:auto; overflow-x:hidden; }
.sidebar::-webkit-scrollbar { width:4px; }
.sidebar::-webkit-scrollbar-thumb { background:#243358; border-radius:4px; }

/* Logo */
.sidebar-logo { padding:77px 37px 17px; border-bottom:1px solid rgba(255,255,255,0.08); flex-shrink:0; display:flex; align-items:flex-start; justify-content:space-between; }
.sidebar-logo img, .sidebar-logo-img { height:97px; cursor:pointer; display:block; }
.sidebar-close { display:none; background:none; border:none; color:rgba(255,255,255,0.4); font-size:20px; cursor:pointer; padding:0; transition:color 0.2s; font-family:'DM Sans',sans-serif; position:absolute; top:20px; right:20px; }
.sidebar-close:hover { color:#F2C917; }

/* Navigazione */
.sidebar-nav { flex:1; padding-top:57px; display:flex; flex-direction:column; gap:6px; }
.sidebar-link { display:flex; align-items:center; gap:14px; padding:13px 43px; color:rgba(255,255,255,0.77); font-size:13px; font-weight:600; text-decoration:none; transition:all 0.2s; font-family:'DM Sans',sans-serif; border:none; background:none; cursor:pointer; text-align:left; width:100%; letter-spacing:0.2px; border-left:3px solid transparent; }
.sidebar-link:hover { color:#F2C917; background:rgba(242,201,23,0.05); }
.sidebar-link.active { color:#F2C917; background:rgba(242,201,23,0.10); border-left-color:#F2C917; }
.sidebar-icon { font-size:16px; width:22px; text-align:center; flex-shrink:0; }
.sidebar-divider { height:1px; background:rgba(255,255,255,0.08); margin:12px 24px; }

/* Utente + Esci */
.sidebar-bottom { padding:43px 43px 77px; border-top:1px solid rgba(255,255,255,0.08); flex-shrink:0; }
.sidebar-user { color:rgba(255,255,255,0.38); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:12px; }
.sidebar-logout { width:100%; padding:10px 12px; background:none; border:1px solid rgba(255,255,255,0.18); color:rgba(255,255,255,0.77); border-radius:6px; font-size:12px; font-weight:600; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 0.2s; }
.sidebar-logout:hover { border-color:#E74C3C; color:#E74C3C; }

/* ── Main content ── */
.app-main { margin-left:300px; min-height:100vh; padding-top:36px; }

/* ── Price bar ── */
.price-bar { position:fixed; bottom:0; left:300px; right:0; z-index:200; }

/* ── Mobile top bar ── */
.topbar-mobile { display:none; background:#1B2A4A; padding:10px 16px; position:sticky; top:36px; z-index:90; box-shadow:0 2px 12px rgba(27,42,74,0.3); align-items:center; justify-content:space-between; }
.topbar-logo { height:26px; }
.topbar-burger { background:none; border:none; cursor:pointer; padding:6px; display:flex; flex-direction:column; gap:4px; }
.topbar-burger span { display:block; width:20px; height:2px; background:rgba(255,255,255,0.7); border-radius:2px; transition:all 0.3s; }

/* ── Overlay ── */
.sidebar-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(27,42,74,0.55); z-index:99; cursor:pointer; }
.sidebar-toggle { display:none!important; }

/* ═══ TABLET/MOBILE (< 1024px) ═══ */
@media (max-width:1024px) {
    .sidebar { transform:translateX(-100%); transition:transform 0.3s ease; z-index:101; top:36px; }
    .app-main { margin-left:0; }
    .topbar-mobile { display:flex; }
    .price-bar { left:0; }
    .sidebar-close { display:block; }
    .sidebar-logo { padding:24px 24px 17px; }
    .sidebar-logo img, .sidebar-logo-img { height:60px; }

    .sidebar-toggle:checked ~ .sidebar-overlay { display:block; }
    .sidebar-toggle:checked ~ .app-layout .sidebar,
    .sidebar-toggle:checked ~ .sidebar { transform:translateX(0); }
    .sidebar.sidebar-open { transform:translateX(0); }

    .sidebar-toggle:checked ~ .topbar-mobile .topbar-burger span:nth-child(1),
    .sidebar-toggle:checked ~ .app-layout .topbar-mobile .topbar-burger span:nth-child(1) { transform:rotate(45deg) translate(4px,4px); background:#F2C917; }
    .sidebar-toggle:checked ~ .topbar-mobile .topbar-burger span:nth-child(2),
    .sidebar-toggle:checked ~ .app-layout .topbar-mobile .topbar-burger span:nth-child(2) { opacity:0; }
    .sidebar-toggle:checked ~ .topbar-mobile .topbar-burger span:nth-child(3),
    .sidebar-toggle:checked ~ .app-layout .topbar-mobile .topbar-burger span:nth-child(3) { transform:rotate(-45deg) translate(4px,-4px); background:#F2C917; }
}

@media (max-width:768px) {
    .sidebar { width:260px; }
    .demo-banner { font-size:12px; height:32px; }
    .demo-banner-text { display:none; }
    .demo-banner-text-mobile { display:inline; }
    .topbar-mobile { top:32px; }
    .sidebar { top:32px; }
    .app-main { padding-top:32px; }
}

/* ═══ HIDE OLD HEADER ═══ */
.header { display:none!important; }
.header-mobile-overlay, .header-mobile-nav, .header-burger-toggle { display:none!important; }
