/* Sidebar styles for OnlyPrompt - modern soft card look - responsive: full sidebar on desktop, icon-only on smaller screens - logout button appears directly after the last menu item with separator line */ .sidebar-shell { width: 100%; height: 100%; background: #ffffff; border-right: 1px solid #eef2f7; padding: 24px 16px; display: flex; flex-direction: column; } /* Logo */ .sidebar-logo { display: flex; align-items: center; justify-content: center; min-height: 72px; margin-bottom: 32px; padding: 6px 8px; } .sidebar-logo-full { max-width: 170px; width: 100%; height: auto; display: block; } .sidebar-logo-icon { width: 36px; height: 36px; display: none; } /* Navigation – normal block layout, no flex grow */ .sidebar { /* No flex:1 – keeps navigation at its natural height */ } .sidebar ul { list-style: none; margin: 0; padding: 0; } .sidebar li { margin-bottom: 8px; } .sidebar a { display: flex; align-items: center; gap: 14px; text-decoration: none; color: #475569; font-size: 1rem; font-weight: 600; padding: 12px 16px; transition: background 0.2s ease, color 0.2s ease; } .sidebar a:hover { background: #f1f5f9; } .sidebar i { font-size: 1.3rem; flex-shrink: 0; } .icon-blue { color: #3b82f6 !important; } .icon-purple { color: #8b5cf6 !important; } .icon-pink { color: #ec4899 !important; } /* Active item */ .sidebar a.active { background: #eef2ff; color: #2563eb; border-left: 3px solid #3b82f6; } /* Bottom logout area – directly after the menu, with separator line */ .sidebar-bottom { margin-top: 16px; /* Small gap above the separator */ border-top: 1px solid #eef2f7; padding-top: 16px; } .sidebar-bottom form { margin: 0; } .sidebar-logout { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 12px 16px; border: 0; background: transparent; cursor: pointer; text-decoration: none; color: #64748b; font: inherit; font-weight: 600; transition: background 0.2s ease; } .sidebar-logout:hover { background: #f1f5f9; } .logout-left { display: flex; align-items: center; gap: 12px; } .sidebar-logout i { font-size: 1.2rem; } .logout-arrow { color: #cbd5e1; } /* Responsive: icon-only sidebar */ @media (max-width: 900px) { .sidebar-shell { padding-left: 12px; padding-right: 12px; } .sidebar-logo-full { display: none; } .sidebar-logo-icon { display: block; } .sidebar .nav-text, .sidebar-logout .nav-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .logout-arrow { display: none; } .sidebar a, .sidebar-logout { justify-content: center; padding: 12px; position: relative; } .sidebar a.active { border-left: none; border-right: 3px solid #3b82f6; } } @media (max-width: 700px) { .sidebar-shell { height: auto; padding: 7px 6px; border-right: none; border-top: 1px solid #eef2f7; box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.08); } .sidebar-logo, .sidebar-bottom { display: none; } .sidebar ul { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 1px; } .sidebar li { margin: 0; } .sidebar li.mobile-hidden { display: none; } .sidebar a, .sidebar-logout { min-height: 46px; padding: 7px 2px; } .sidebar i { font-size: 1.05rem; } .sidebar a.active { border-right: none; border-top: 3px solid #3b82f6; } }