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

.crm-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: var(--crm-sidebar-width);
    background: linear-gradient(180deg, var(--crm-sidebar-bg), var(--crm-sidebar-bg-2));
    color: #fff;
    box-shadow: 16px 0 44px rgba(15, 23, 42, .18);
}

.crm-sidebar-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 15px 12px 12px;
    min-height: 0;
}

.crm-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 7px 13px;
    text-decoration: none;
    flex: 0 0 auto;
}

.crm-logo-mark {
    width: 38px;
    height: 38px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--crm-primary), var(--crm-primary-2));
    font-weight: 900;
    letter-spacing: .03em;
    box-shadow: 0 12px 24px rgba(37, 99, 235, .28);
}

.crm-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    min-width: 0;
}

.crm-logo-text strong {
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.crm-logo-text small {
    margin-top: 2px;
    color: rgba(255,255,255,.62);
    font-size: 11px;
}

.crm-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 2px;

    scrollbar-width: none;
    -ms-overflow-style: none;
}

.crm-nav::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.crm-nav-list,
.crm-nav-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.crm-nav-list li {
    margin: 1px 0;
}

.crm-nav-list a {
    display: flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 10px;
    color: var(--crm-sidebar-text);
    text-decoration: none;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.15;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}

.crm-nav-list a:hover,
.crm-nav-list a.is-active,
.crm-nav-list li.is-active > a {
    background: rgba(255,255,255,.12);
    color: #fff;
}

.crm-nav-list a:hover {
    transform: translateX(2px);
}

.crm-sidebar-bottom {
    flex: 0 0 auto;
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding: 10px;
    border-radius: 14px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.78);
}

.crm-sidebar-user {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.crm-sidebar-user-label {
    color: rgba(255,255,255,.48);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.crm-sidebar-user strong {
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.crm-sidebar-logout {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 11px;
    background: rgba(255,255,255,.11);
    border: 1px solid rgba(255,255,255,.13);
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: background .16s ease, transform .16s ease;
}

.crm-sidebar-logout:hover {
    background: rgba(255,255,255,.18);
    transform: translateY(-1px);
}

.crm-workspace {
    width: calc(100% - var(--crm-sidebar-width));
    min-width: 0;
    margin-left: var(--crm-sidebar-width);
}

.crm-main {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: var(--crm-main-padding-top) var(--crm-main-padding-x) var(--crm-main-padding-bottom);
    opacity: 1;
    transition: opacity .16s ease, transform .16s ease;
    outline: none;
}

.crm-is-loading .crm-main {
    opacity: .55;
    transform: translateY(2px);
}

.crm-mobile-menu-button {
    display: none !important;
}

.crm-backdrop {
    display: none;
}

.crm-mobile-footer {
    display: none;
}

@media (max-width: 900px) {
    :root {
        --crm-sidebar-width: 260px;
    }

    .crm-sidebar {
        transform: translateX(-104%);
        transition: transform .2s ease;
    }

    .crm-sidebar.is-open {
        transform: translateX(0);
    }
    
    .crm-sidebar-inner {
    padding-bottom: calc(12px + var(--crm-mobile-footer-height) + env(safe-area-inset-bottom));
}

    .crm-backdrop {
    display: block;
    position: fixed;
    inset: 0 0 calc(var(--crm-mobile-footer-height) + env(safe-area-inset-bottom)) 0;
    z-index: 30;
    background: rgba(15,23,42,.38);
}

    .crm-mobile-menu-button {
    display: none !important;
}

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

    .crm-main {
    --crm-main-padding-top: 0px;
    --crm-main-padding-x: 14px;
    --crm-main-padding-bottom: 18px;

    padding:
        var(--crm-main-padding-top)
        var(--crm-main-padding-x)
        calc(var(--crm-main-padding-bottom) + var(--crm-mobile-footer-height) + env(safe-area-inset-bottom));
}

.crm-mobile-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--crm-mobile-footer-z-index);

    height: var(--crm-mobile-footer-height);
    padding-bottom: env(safe-area-inset-bottom);

    display: flex;
    background: var(--crm-mobile-footer-bg);
    border-top: 1px solid var(--crm-mobile-footer-border);

    --footer-text: var(--crm-mobile-footer-text);
    --footer-icon: var(--crm-mobile-footer-icon);
    --footer-icon-active: var(--crm-mobile-footer-icon-active);
    --footer-icon-size: var(--crm-mobile-footer-icon-size);
    --footer-gap: var(--crm-mobile-footer-gap);
    --footer-stroke: var(--crm-mobile-footer-stroke);
}

.crm-mobile-footer-btn {
    flex: 1 1 20%;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--footer-gap);

    padding: 0 2px;
    border: 0;
    border-radius: 0;
    background: none;

    color: var(--footer-text);
    text-decoration: none;
    font: inherit;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.crm-mobile-footer-btn .i {
    width: var(--footer-icon-size);
    height: var(--footer-icon-size);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--footer-icon);
    line-height: 0;
    transition: color .2s ease, transform .25s ease;
}

.crm-mobile-footer-btn .i svg {
    display: block;
    width: 100%;
    height: 100%;
}

.crm-mobile-footer-btn .i.stroke svg * {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: var(--footer-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.crm-mobile-footer-btn .i.stroke path[stroke="none"],
.crm-mobile-footer-btn .i.stroke path[d^="M0 0h24v24H0z"] {
    stroke: none !important;
    fill: none !important;
}

.crm-mobile-footer-btn .lbl {
    max-width: 100%;
    color: var(--footer-text);
    font-size: 12px;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color .2s ease;
}

.crm-mobile-footer-btn:active .i {
    color: var(--footer-icon-active);
    transform: translateY(-1px);
}

.crm-mobile-footer-btn.is-active {
    color: var(--footer-text);
    box-shadow: inset 0 2px 0 rgba(0,223,191,0.7);
}

.crm-mobile-footer-btn.is-active .i {
    color: var(--footer-icon-active);
}

.crm-mobile-footer-agent {
    cursor: default;
}

.crm-toast {
    right: 12px;
    bottom: calc(14px + var(--crm-mobile-footer-height) + env(safe-area-inset-bottom));
}

}

@media (max-width: 420px) {
    .crm-main {
        --crm-main-padding-x: 12px;
    }
}