.page { position: relative; display: flex; flex-direction: column; }
.page main { flex:1; min-width:0; }
.account-card { max-width:480px; border:1px solid #ddd; border-radius:10px; padding:2rem; }
.users-table th { white-space:nowrap; }
.users-table th:not(:last-child), .users-table td:not(:last-child) { width:1%; white-space:nowrap; }
.users-table input[name="name"] { width:12rem; }
@media (min-width:641px) { .page { flex-direction:row; } .page .sidebar { height:100vh; position:sticky; top:0; } .page article { padding-left:2rem !important; padding-right:1.5rem !important; } }

    .snackbar {
        position: fixed;
        right: 20px;
        bottom: 20px;
        z-index: 4000;
        min-width: 280px;
        max-width: 420px;
        padding: 12px 16px;
        border-radius: 8px;
        color: #fff;
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
    }

    .snackbar-success {
        background-color: #198754;
    }

    .snackbar-error {
        background-color: #dc3545;
    }


    
    /* Sidebar base */
    .sidebar {
        background: #2A9DA2;
        color: white;
        width: 250px;
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
    }

        /* Top title row */
        .sidebar .top-row {
            background: #2A9DA2;
            border-bottom: 1px solid rgba(255,255,255,0.15);
            height: 3.5rem;
            display: flex;
            align-items: center;
            flex-shrink: 0;
        }

        /* App title */
        .sidebar .navbar-brand {
            color: white;
            font-weight: 600;
            font-size: 1.1rem;
            letter-spacing: 0.3px;
        }

        /* Scroll container */
        .sidebar .nav-scrollable {
            background: #2A9DA2;
            padding-top: 10px;
            flex: 1;
            min-height: 0;
            display: grid;
            grid-template-rows: auto minmax(0, 1fr) auto;
            height: calc(100dvh - 3.5rem);
            overflow-y: auto;
        }

        .sidebar .account-navigation {
            margin-top: 0;
            grid-row: 3;
        }

        .sidebar .navigation-spacer {
            grid-row: 2;
        }

        @media (max-width: 640.98px) {
            .sidebar .nav-scrollable { display: none; flex: none; }
            .sidebar .navbar-toggler:checked ~ .nav-scrollable { display: grid; }
        }

        /* Nav items spacing */
        .sidebar .nav-item {
            margin: 2px 0;
        }

        /* Nav links */
        .sidebar .nav-link {
            color: rgba(255,255,255,0.9);
            border-radius: 6px;
            padding: 10px 14px;
            font-size: 0.95rem;
            font-weight: 600;
            transition: all 0.15s ease;
        }

            /* Hover state */
            .sidebar .nav-link:hover {
                background: rgba(255,255,255,0.15);
                color: white;
            }

            /* Active page */
            .sidebar .nav-link.active {
                background: rgba(255,255,255,0.25);
                color: white;
            }
