* {
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body {
    font-family:'Inter',sans-serif;
    background:#08131f;
    color:#fff;
    overflow-x:hidden;
}

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

img {
    display:block;
    max-width:100%;
}

.wrapper {
    display:flex;
    min-height:100vh;
}

.sidebar {
    position:fixed;
    left:0;
    top:0;
    width:260px;
    height:100vh;
    background:#0b1827;
    border-right:1px solid rgba(255,255,255,.07);
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
}

.logo {
    display:flex;
    align-items:center;
    gap:15px;
    padding:30px;
    border-bottom:1px solid rgba(255,255,255,.05);
}

.logo img {
    width:44px;
}

.logo h2 {
    font-size:22px;
}

.sidebar nav {
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:20px;
}

.sidebar nav a {
    display:flex;
    align-items:center;
    gap:15px;
    padding:14px 18px;
    border-radius:12px;
    color:#b7c7d8;
    transition:.3s;
}

.sidebar nav a:hover {
    background:#132842;
    color:#39b7ff;
}

.sidebar nav a.active {
    background:#149dff;
    color:#fff;
}

.logout {
    padding:25px;
    margin-top:auto;
}

.logout a {
    display:block;
    padding:14px;
    text-align:center;
    border-radius:12px;
    background:#12253d;
    color:#fff;
    transition:.3s;
}

.logout a:hover {
    background:#149dff;
}

.content {
    margin-left:260px;
    width:calc(100% - 260px);
    padding:35px;
}

.topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    margin-bottom:35px;
}

.topbar h1 {
    font-size:32px;
}

.search {
    flex:1;
}

.search input {
    width:100%;
    height:42px;
    padding:0 18px;
    background:#10243b;
    border:1px solid rgba(255,255,255,.08);
    border-radius:10px;
    color:#fff;
    font-size:14px;
}

.search input::placeholder {
    color:#71869b;
}

.search input:focus {
    outline:none;
    border-color:#149dff;
}

.top-right {
    display:flex;
    align-items:center;
    gap:20px;
}

.notification {
    position:relative;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:50%;
    background:#111f31;
    color:#fff;
    font-size:20px;
    cursor:pointer;
}

.notification:hover {
    background:#172c47;
}

.notification span {
    position:absolute;
    top:-4px;
    right:-4px;
    width:20px;
    height:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#ff4d4d;
    font-size:11px;
    font-weight:600;
}

.profile {
    position:relative;
}

.profile-main {
    display:flex;
    align-items:center;
    gap:12px;
    padding:8px 12px;
    border-radius:12px;
    cursor:pointer;
    transition:.2s;
}

.profile-main:hover {
    background:#14263d;
}

.avatar {
    width:48px;
    height:48px;
    border-radius:50%;
    object-fit:cover;
}

.profile-data {
    display:flex;
    flex-direction:column;
}

.profile-data strong {
    font-size:15px;
}

.profile-status {
    margin-top:3px;
    color:#9bb0c9;
    font-size:14px;
}

.profile-dropdown {
    position:absolute;
    top:62px;
    right:0;
    width:230px;
    background:#101e32;
    border:1px solid #284562;
    border-radius:12px;
    overflow:hidden;
    opacity:0;
    visibility:hidden;
    transform:translateY(-5px);
    transition:.2s;
    z-index:1000;
}

.profile:hover .profile-dropdown {
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.profile-dropdown a {
    display:block;
    padding:14px;
    color:#fff;
    transition:.2s;
}

.profile-dropdown a:hover {
    background:#172c45;
    color:#3fa5ff;
}

.dropdown-email {
    padding:14px;
    color:#72b8ff;
    border-bottom:1px solid #22384f;
    font-size:14px;
}

.tabs {
    display:flex;
    gap:10px;
    margin-bottom:25px;
}

.tab {
    padding:10px 18px;
    background:#10243b;
    border-radius:10px;
    color:#9eb1c4;
}

.tab.active {
    background:#149dff;
    color:#fff;
}

.tariff-card {
    background:#111f31;
    border:1px solid rgba(255,255,255,.08);
    border-radius:16px;
    padding:25px;
    margin-bottom:30px;
    animation:fade .5s ease;
}

.tariff-header h2 {
    font-size:26px;
    margin-bottom:8px;
}

.tariff-header p {
    color:#45b7ff;
    font-size:14px;
}

.tariff-info {
    margin-top:25px;
    color:#aebed0;
    line-height:1.7;
}

.tariff-info h3 {
    margin:25px 0 15px;
    color:#fff;
}

.tariff-info ul {
    padding-left:20px;
}

.tariff-info li {
    margin-bottom:8px;
}

.price-box {
    margin-top:25px;
    padding:15px;
    background:#193654;
    border:1px solid #28659b;
    border-radius:10px;
    color:#d9e8f7;
}

.price-box strong {
    color:#43b8ff;
    font-size:22px;
}

.actions {
    margin-top:25px;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:13px 25px;
    border-radius:10px;
    border:none;
    cursor:pointer;
    background:#149dff;
    color:#fff;
    font-weight:600;
    transition:.25s;
}

.btn:hover {
    background:#36b5ff;
    transform:translateY(-2px);
}

.btn.secondary {
    background:#24374d;
}

.global-error {
    margin-left:260px;
    margin-right:35px;
    padding:15px;
    background:#401c25;
    border:1px solid #a74355;
    border-radius:10px;
}

.payment {
    margin-top:20px;
    background:#10243b;
    padding:15px;
    border-radius:10px;
    color:#9eb2c5;
}

dialog {
    border:none;
    border-radius:15px;
    background:#111f31;
    color:#fff;
    padding:25px;
}

dialog::backdrop {
    background:rgba(0,0,0,.7);
}

.modal-box h3 {
    margin-bottom:15px;
}

.notification-overlay {
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:999;
}

.notification-overlay.show {
    opacity:1;
    visibility:visible;
}

.notification-modal {
    position:fixed;
    top:90px;
    right:30px;
    width:420px;
    max-height:650px;
    display:flex;
    flex-direction:column;
    background:#0d1d31;
    border:1px solid rgba(20,157,255,.25);
    border-radius:18px;
    overflow:hidden;
    box-shadow:
        0 25px 60px rgba(0,0,0,.55),
        0 0 30px rgba(20,157,255,.08);
    transform:translateY(-15px) scale(.95);
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:1000;
}

.notification-modal.show {
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
}

.notification-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 22px;
    background:#132844;
    border-bottom:1px solid rgba(255,255,255,.05);
}

.notification-header h3 {
    font-size:20px;
}

.notification-close {
    width:36px;
    height:36px;
    border:none;
    border-radius:8px;
    background:#17314f;
    color:#fff;
    cursor:pointer;
    font-size:18px;
    transition:.25s;
}

.notification-close:hover {
    background:#149dff;
}

.notification-list {
    flex:1;
    overflow-y:auto;
    display:flex;
    flex-direction:column;
}

.notification-list::-webkit-scrollbar {
    width:8px;
}

.notification-list::-webkit-scrollbar-thumb {
    background:#1d4b78;
    border-radius:20px;
}

.notification-item {
    display:flex;
    gap:15px;
    padding:18px 22px;
    border-bottom:1px solid rgba(255,255,255,.05);
    transition:.25s;
}

.notification-item:hover {
    background:#12253d;
}

.notification-item.unread {
    background:rgba(20,157,255,.06);
    border-left:4px solid #149dff;
}

.notification-icon {
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#17314f;
    border-radius:12px;
    font-size:22px;
    flex-shrink:0;
}

.notification-content {
    flex:1;
}

.notification-content h4 {
    font-size:15px;
    margin-bottom:6px;
}

.notification-content p {
    color:#9cb7cc;
    font-size:14px;
    line-height:1.5;
    margin-bottom:8px;
}

.notification-content span {
    color:#6887a5;
    font-size:12px;
}

.notification-footer {
    padding:18px;
    background:#132844;
    border-top:1px solid rgba(255,255,255,.05);
}

.notification-clear {
    width:100%;
    padding:14px;
    border:none;
    border-radius:10px;
    background:#149dff;
    color:#fff;
    cursor:pointer;
    font-size:15px;
    transition:.25s;
}

.notification-clear:hover {
    background:#2eb3ff;
}

.notification-empty {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:70px 30px;
    flex:1;
}

.notification-empty .empty-icon {
    width:80px;
    height:80px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#17314f;
    font-size:38px;
    margin-bottom:20px;
}

.notification-empty h3 {
    font-size:22px;
    margin-bottom:10px;
}

.notification-empty p {
    color:#8ea8be;
    line-height:1.6;
    max-width:260px;
}

@keyframes fade {
    from {
        opacity:0;
        transform:translateY(20px);
    }

    to {
        opacity:1;
        transform:translateY(0);
    }
}

@media(max-width:1200px){

    .sidebar {
        width:220px;
    }

    .content {
        margin-left:220px;
        width:calc(100% - 220px);
        padding:25px;
    }

    .global-error {
        margin-left:220px;
    }

    .tariff-card {
        padding:22px;
    }

}

@media(max-width:900px){

    .wrapper {
        display:block;
    }

    .sidebar {
        position:relative;
        width:100%;
        height:auto;
        border-right:none;
        border-bottom:1px solid rgba(255,255,255,.07);
    }

    .logo {
        padding:20px;
    }

    .sidebar nav {
        flex-direction:row;
        overflow-x:auto;
        padding:10px 15px;
    }

    .sidebar nav a {
        white-space:nowrap;
        padding:12px 15px;
    }

    .logout {
        display:none;
    }

    .content {
        width:100%;
        margin-left:0;
        padding:20px;
    }

    .global-error {
        margin:20px;
    }

    .topbar {
        flex-direction:column;
        align-items:stretch;
        gap:15px;
    }

    .top-right {
        width:100%;
        justify-content:space-between;
    }

    .tabs {
        overflow-x:auto;
    }

    .tab {
        flex-shrink:0;
    }

    .actions {
        flex-direction:column;
    }

    .btn {
        width:100%;
    }

    dialog {
        width:90%;
    }

}

@media(max-width:768px){

    .notification-modal {
        top:70px;
        left:12px;
        right:12px;
        width:auto;
        max-height:calc(100vh - 90px);
    }

}

@media(max-width:480px){

    body {
        font-size:14px;
    }

    .logo img {
        width:38px;
    }

    .logo h2 {
        font-size:18px;
    }

    .content {
        padding:12px;
    }

    .topbar h1 {
        font-size:22px;
    }

    .search input {
        height:40px;
        font-size:13px;
    }

    .avatar {
        width:38px;
        height:38px;
    }

    .notification {
        width:40px;
        height:40px;
    }

    .tariff-card {
        padding:15px;
        border-radius:14px;
    }

    .tariff-header h2 {
        font-size:21px;
    }

    .notification-header {
        padding:15px;
    }

    .notification-item {
        padding:15px;
    }

    .notification-icon {
        width:40px;
        height:40px;
        font-size:18px;
    }

}

@media(max-height:500px) and (orientation:landscape){

    .sidebar {
        display:none;
    }

    .content {
        width:100%;
        margin-left:0;
    }

}