:root {
    --nice-blue: #4154f1;
    --nice-blue-dark: #012970;
    --nice-bg: #f3f6ff;
    --nice-panel: #ffffff;
    --nice-border: #dce6ff;
    --nice-muted: #7f8aa5;
    --nice-text: #25375f;
    --nice-sidebar: #ffffff;
    --nice-top: #00467a;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Inter, "Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--nice-text);
    background: var(--nice-bg);
}
a { color: var(--nice-blue); text-decoration: none; }

.demo-bar {
    height: 42px;
    display: grid;
    grid-template-columns: 280px 1fr 180px;
    align-items: center;
    background: linear-gradient(90deg, #004a7f 0%, #003f73 74%, #08aef1 74%, #08aef1 100%);
    color: #fff;
    position: fixed;
    inset: 0 0 auto;
    z-index: 1040;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.16);
}
.demo-brand {
    display: flex;
    align-items: center;
    gap: 7px;
    padding-left: 18px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: .2px;
}
.demo-brand span:last-child { color: #11b7f4; }
.demo-mark {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border-radius: 7px;
    background: #08aef1;
    color: #003f73;
    font-weight: 900;
    transform: skew(-12deg);
}
.demo-title { text-align: center; font-size: 19px; font-weight: 800; }
.demo-download {
    color: #fff;
    justify-self: stretch;
    height: 42px;
    display: grid;
    place-items: center;
    font-size: 14px;
    font-weight: 800;
}

.nice-auth-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 82% 10%, rgba(65, 84, 241, .12), transparent 32%),
        linear-gradient(120deg, #f4f7ff 0%, #f8fbff 54%, #edf5ff 100%);
}
.nice-auth-main {
    min-height: 100vh;
    padding: 110px 24px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.nice-login-brand,
.brand-lockup {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--nice-blue-dark);
    font-size: 22px;
    font-weight: 800;
}
.nice-logo-mark {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    border-radius: 8px;
    color: #fff;
    background: linear-gradient(135deg, #536dfe, #4154f1);
    font-weight: 900;
    transform: skew(-6deg);
}
.nice-login-card {
    width: min(100%, 660px);
    margin-top: 24px;
    padding: 34px;
    background: #fff;
    border: 1px solid var(--nice-border);
    box-shadow: 0 24px 75px rgba(65, 84, 241, .12);
}
.secure-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    background: #f0f2ff;
    color: #5b63ff;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    font-size: 13px;
}
.nice-login-card h1 {
    margin: 16px 0 8px;
    font-size: 34px;
    line-height: 1.1;
    color: var(--nice-blue-dark);
    font-weight: 850;
}
.login-muted { margin: 0 0 26px; color: var(--nice-muted); font-size: 16px; }
.nice-field { margin-bottom: 18px; }
.nice-field label,
.field-row label {
    display: block;
    color: var(--nice-blue-dark);
    font-weight: 800;
    margin-bottom: 10px;
}
.field-row { display: flex; align-items: center; justify-content: space-between; }
.field-row a,
.login-options a { font-weight: 800; }
.nice-field input {
    width: 100%;
    height: 52px;
    border: 1px solid var(--nice-border);
    border-radius: 4px;
    padding: 0 18px;
    color: var(--nice-text);
    outline: 0;
    transition: border .15s ease, box-shadow .15s ease;
}
.nice-field input:focus {
    border-color: var(--nice-blue);
    box-shadow: 0 0 0 4px rgba(65, 84, 241, .10);
}
.password-wrap { display: grid; grid-template-columns: 1fr 72px; }
.password-wrap input { border-radius: 4px 0 0 4px; }
.password-toggle {
    border: 1px solid var(--nice-border);
    border-left: 0;
    background: #fff;
    color: #8993aa;
    border-radius: 0 4px 4px 0;
}
.login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 6px 0 24px;
}
.check-line {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #5c6680;
}
.check-line input {
    width: 20px;
    height: 20px;
    accent-color: var(--nice-blue);
}
.nice-submit {
    width: 100%;
    border: 0;
    background: var(--nice-blue);
    color: #fff;
    height: 54px;
    border-radius: 4px;
    font-weight: 800;
    box-shadow: 0 16px 30px rgba(65, 84, 241, .18);
}
.divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 26px 0 22px;
    color: var(--nice-muted);
    font-weight: 700;
}
.divider::before,
.divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--nice-border);
}
.social-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.social-btn {
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid #7d879d;
    border-radius: 4px;
    color: #6b748a;
    font-weight: 800;
}
.create-account,
.auth-footer {
    text-align: center;
    color: var(--nice-muted);
}
.create-account { margin: 22px 0 0; }
.create-account a { font-weight: 800; }
.auth-footer {
    margin-top: 24px;
    line-height: 1.8;
}

.smart-login-body {
    min-height: 100vh;
    background: #f7f7f7;
}
.smart-portal-banner {
    height: 96px;
    position: relative;
    display: grid;
    grid-template-columns: 100px 1fr 100px;
    align-items: center;
    padding: 0 28px;
    background:
        linear-gradient(135deg, rgba(14, 165, 233, .72) 0%, rgba(56, 189, 248, .68) 35%, rgba(139, 92, 246, .66) 70%, rgba(251, 207, 232, .70) 100%),
        url("../img/login-animal-banner.png") center 42% / cover no-repeat;
    box-shadow: inset 0 -1px rgba(255,255,255,.2);
}
.smart-banner-logo,
.login-card-emblem {
    display: block;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: 0 8px 18px rgba(0,0,0,.2);
}
.smart-banner-logo {
    width: 68px;
    height: 68px;
    justify-self: start;
}
.smart-portal-banner h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(24px, 2.4vw, 38px);
    font-weight: 900;
    line-height: 1.05;
    text-align: center;
    text-shadow: 0 4px 10px rgba(0, 0, 0, .55);
}
.smart-portal-banner h1 span {
    display: inline-block;
    width: 0ch;
    max-width: 39ch;
    overflow: hidden;
    white-space: nowrap;
    border-right: 3px solid rgba(255, 255, 255, .95);
    animation: smart-typewriter 8s steps(39, end) infinite, smart-cursor 750ms step-end infinite;
}
@keyframes smart-typewriter {
    0%, 8% { width: 0ch; }
    42%, 62% { width: 39ch; }
    96%, 100% { width: 0ch; }
}
@keyframes smart-typewriter-once {
    from { width: 0ch; }
    to { width: 39ch; }
}
@keyframes smart-cursor {
    0%, 100% { border-color: rgba(255, 255, 255, .95); }
    50% { border-color: transparent; }
}
.smart-nav-spacer {
    height: 46px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(15, 23, 42, .14);
}
.smart-login-main {
    min-height: calc(100vh - 142px);
    padding: 28px 24px 92px;
    background: #fafafa;
}
.smart-login-card {
    width: min(100%, 500px);
    margin-top: 0;
    padding: 36px 40px 40px;
    border: 1px solid #dfe3ea;
    border-radius: 8px;
    box-shadow: 0 15px 26px rgba(15, 23, 42, .12);
    animation: login-panel-fade-up .65s ease-out both;
    will-change: opacity, transform;
}
@keyframes login-panel-fade-up {
    from {
        opacity: 0;
        transform: translateY(34px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.login-card-emblem {
    width: 82px;
    height: 82px;
    margin: 0 auto 18px;
}
.smart-login-card h1 {
    margin: 0 0 12px;
    text-align: center;
    color: #202b3d;
    font-size: 27px;
    line-height: 1.15;
}
.smart-login-card .login-muted {
    margin-bottom: 42px;
    text-align: center;
    color: #4b5565;
    font-size: 15px;
}
.smart-login-card .nice-field {
    margin-bottom: 16px;
}
.smart-login-card .nice-field label {
    color: #5f6b84;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 7px;
}
.smart-input-wrap,
.smart-login-card .password-wrap {
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: center;
    min-height: 38px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    background: #fff;
}
.smart-input-wrap i,
.smart-login-card .password-wrap::before {
    display: grid;
    place-items: center;
    color: #6b7280;
    font-size: 16px;
}
.smart-login-card .password-wrap::before {
    content: "\F44F";
    font-family: "bootstrap-icons";
}
.smart-input-wrap input,
.smart-login-card .password-wrap input {
    height: 36px;
    border: 0;
    border-radius: 6px;
    padding: .375rem .75rem .375rem 0;
    color: #212529;
    font-size: 14px;
    font-weight: 400;
}
.smart-input-wrap input:focus,
.smart-login-card .password-wrap input:focus {
    box-shadow: none;
}
.smart-login-card .password-wrap {
    grid-template-columns: 42px 1fr 38px;
}
.smart-login-card .password-toggle {
    width: 30px;
    height: 30px;
    justify-self: center;
    border: 1px solid #d7dce4;
    border-radius: 4px;
    font-size: 14px;
}
.smart-login-card .nice-submit {
    height: 42px;
    margin-top: 28px;
    background: #8ea9ca;
    border-radius: 0;
    box-shadow: none;
    font-size: 17px;
}
.smart-login-card form:valid .nice-submit {
    background: #16558c;
}
.smart-auth-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #fff;
    background: #1ca6ca;
    font-size: 13px;
}

.nice-dashboard-body { padding-top: 96px; }
.app-smart-banner {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1040;
}
.app-smart-banner h1 span {
    animation: smart-typewriter-once 3.8s steps(39, end) forwards, smart-cursor 750ms step-end 6;
}
.smart-banner-typed .app-smart-banner h1 span {
    width: 39ch;
    animation: none;
    border-right-color: transparent;
}
.nice-header {
    height: 62px;
    position: fixed;
    inset: 96px 0 auto;
    z-index: 1030;
    display: grid;
    grid-template-columns: 280px 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 0 24px;
    background: #fff;
    border-bottom: 1px solid var(--nice-border);
}
.header-left,
.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}
.top-action {
    position: relative;
}
.icon-btn,
.mini-icon {
    width: 34px;
    height: 34px;
    border: 1px solid var(--nice-border);
    background: #fff;
    color: #8a94aa;
    border-radius: 4px;
    display: inline-grid;
    place-items: center;
    position: relative;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.icon-btn:hover,
.icon-btn.is-open,
.small-pill:hover,
.small-pill.is-open {
    background: #f6f8ff;
    border-color: #c6d3ff;
    color: var(--nice-blue);
    box-shadow: 0 6px 16px rgba(65, 84, 241, .10);
}
.has-badge span {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #ff4b7d;
    color: #fff;
    font-size: 10px;
    line-height: 17px;
    font-weight: 800;
}
.search-box {
    max-width: 600px;
    height: 38px;
    margin-left: auto;
    display: grid;
    grid-template-columns: 32px 1fr 28px;
    align-items: center;
    border: 1px solid var(--nice-border);
    border-radius: 4px;
    color: #9aa4b6;
    padding: 0 8px;
}
.search-box input {
    border: 0;
    outline: 0;
    color: var(--nice-text);
}
.search-box kbd {
    background: #f7f9ff;
    color: #a3aec2;
    border: 1px solid var(--nice-border);
}
.small-pill {
    height: 34px;
    border: 1px solid var(--nice-border);
    background: #fff;
    color: #667085;
    font-size: 12px;
    border-radius: 4px;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.flag-dot {
    width: 10px;
    height: 7px;
    display: inline-block;
    background: #e34b5e;
    margin-right: 5px;
}
.user-button {
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-align: left;
    color: var(--nice-text);
}
.user-button small,
.sidebar-profile small { display: block; color: var(--nice-muted); font-size: 10px; text-transform: uppercase; }
.avatar-dot,
.tiny-avatar {
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #dce7ff;
    color: var(--nice-blue-dark);
    font-weight: 800;
}
.avatar-dot { width: 30px; height: 30px; }
.avatar-dot img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}
.tiny-avatar { width: 22px; height: 22px; font-size: 11px; margin-right: 8px; }
.top-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    width: 420px;
    max-width: calc(100vw - 32px);
    display: none;
    background: #fff;
    border: 1px solid var(--nice-border);
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(37, 55, 95, .14);
    z-index: 1100;
    overflow: visible;
    font-size: 13px;
    line-height: 1.35;
}
.top-panel.open { display: block; }
.top-panel > :first-child { border-radius: 7px 7px 0 0; }
.top-panel > :last-child { border-radius: 0 0 7px 7px; }
.top-panel::before {
    content: "";
    position: absolute;
    top: -7px;
    right: 22px;
    width: 14px;
    height: 14px;
    background: inherit;
    border-left: 1px solid var(--nice-border);
    border-top: 1px solid var(--nice-border);
    transform: rotate(45deg);
}
.top-panel h3 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
}
.language-panel h3,
.quick-panel h3 {
    padding: 14px 16px;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: .04em;
    background: #f8faff;
    border-bottom: 1px solid #e8edf8;
}
.language-panel { width: 270px; }
.language-panel a {
    min-height: 58px;
    display: grid;
    grid-template-columns: 22px 30px 1fr;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border-top: 1px solid #e8edf8;
    color: var(--nice-text);
    transition: background .15s ease, color .15s ease;
}
.language-panel a:first-of-type { border-top: 0; }
.language-panel a:hover,
.language-panel a.active { background: #eef4ff; }
.language-panel strong,
.quick-panel strong,
.feed-item strong {
    color: #2d374b;
    font-size: 13px;
    font-weight: 800;
}
.language-panel small,
.quick-panel small,
.feed-item small,
.feed-item em {
    display: block;
    color: #69758e;
    font-size: 12px;
}
.flag-us,
.flag-fr,
.flag-de,
.flag-es {
    width: 26px;
    height: 18px;
    display: inline-block;
    border: 1px solid #dfe5f4;
}
.flag-us { background: linear-gradient(#b22234 0 14%, #fff 14% 28%, #b22234 28% 42%, #fff 42% 56%, #b22234 56% 70%, #fff 70% 84%, #b22234 84%); }
.flag-fr { background: linear-gradient(90deg, #002395 0 33%, #fff 33% 66%, #ed2939 66%); }
.flag-de { background: linear-gradient(#000 0 33%, #dd0000 33% 66%, #ffce00 66%); }
.flag-es { background: linear-gradient(#aa151b 0 25%, #f1bf00 25% 75%, #aa151b 75%); }
.quick-panel { width: 360px; padding-bottom: 12px; }
.quick-primary {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 12px 14px 0;
    padding: 12px;
    border: 1px solid #d9e2ff;
    border-radius: 6px;
    background: #f7f9ff;
    color: var(--nice-text);
    transition: border .15s ease, box-shadow .15s ease, transform .15s ease;
}
.quick-primary:hover {
    border-color: #aeb8ff;
    box-shadow: 0 8px 20px rgba(65, 84, 241, .12);
    transform: translateY(-1px);
}
.quick-primary i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: var(--nice-blue);
    color: #fff;
    font-size: 18px;
    flex: 0 0 auto;
}
.quick-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 0 20px;
}
.quick-grid a {
    display: grid;
    gap: 8px;
    padding: 22px;
    min-height: 130px;
    border: 1px solid #e3e9f7;
    border-radius: 6px;
}
.quick-grid i {
    color: var(--nice-blue);
    font-size: 28px;
}
.feed-panel { width: 420px; }
.panel-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 18px;
    border-bottom: 1px solid #e8edf8;
    background: #f8faff;
}
.panel-title p {
    margin: 3px 0 0;
    color: var(--nice-muted);
    font-size: 12px;
}
.panel-title a {
    font-size: 12px;
    font-weight: 800;
}
.notif-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e8edf8;
}
.notif-stats div {
    text-align: center;
    padding: 10px;
    border-right: 1px solid #e8edf8;
}
.notif-stats div:last-child { border-right: 0; }
.notif-stats strong {
    display: block;
    color: var(--nice-blue-dark);
    font-size: 16px;
}
.notif-stats span {
    color: #69758e;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 800;
}
.message-tabs {
    display: flex;
    gap: 6px;
    padding: 10px 14px;
    border-bottom: 1px solid #e8edf8;
}
.message-tabs button {
    border: 1px solid #e1e8f7;
    background: #fff;
    color: #66728a;
    border-radius: 6px;
    padding: 6px 12px;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 800;
}
.message-tabs .active {
    border-color: #9ca8ff;
    background: #f4f6ff;
    color: var(--nice-blue);
}
.feed-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 10px;
    padding: 13px 18px;
    border-bottom: 1px solid #e8edf8;
    color: var(--nice-text);
    transition: background .15s ease;
}
.feed-item:hover {
    background: #f8faff;
}
.feed-item.unread {
    position: relative;
}
.feed-item.unread::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 20px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--nice-blue);
}
.feed-item > i,
.feed-item > .tiny-avatar {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 0;
    font-size: 16px;
}
.blue-box { background: #e9f2ff; color: #2d7ff9; }
.amber-box { background: #fff3df; color: #f39c12; }
.green-box { background: #e7f8ef; color: #22a36f; }
.panel-footer-link {
    display: block;
    padding: 13px 16px;
    text-align: center;
    font-weight: 800;
    font-size: 13px;
    background: #fbfcff;
}
.profile-panel { width: 310px; }
.profile-panel-head {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 16px;
    border-bottom: 1px solid #e8edf8;
    background: #f8faff;
}
.profile-panel .big-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    font-size: 16px;
}
.profile-panel-head strong {
    display: block;
    color: var(--nice-blue-dark);
    font-size: 15px;
    font-weight: 800;
}
.profile-panel-head small {
    color: #69758e;
    font-size: 12px;
}
.profile-panel > a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    color: #2d374b;
    font-size: 13px;
    font-weight: 800;
    transition: background .15s ease, color .15s ease;
}
.profile-panel > a:hover {
    background: #f8faff;
    color: var(--nice-blue);
}
.profile-panel > a i {
    color: var(--nice-blue);
    font-size: 16px;
}
.profile-signout {
    padding: 12px;
    border-top: 1px solid #e8edf8;
}
.profile-signout a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    border: 1px solid #ffc3ce;
    border-radius: 6px;
    background: #fff6f8;
    color: #f0526e;
    font-size: 13px;
    font-weight: 800;
}

.nice-sidebar {
    position: fixed;
    left: 0;
    top: 158px;
    bottom: 0;
    width: 280px;
    padding: 16px 14px;
    background: var(--nice-sidebar);
    border-right: 1px solid var(--nice-border);
    overflow-y: auto;
    z-index: 1020;
    transition: transform .22s ease, opacity .22s ease;
}
body.sidebar-hidden .nice-sidebar {
    transform: translateX(-100%);
    opacity: 0;
    pointer-events: none;
}
.menu-section { margin-bottom: 16px; }
.menu-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 8px 8px;
    color: #8c98b3;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.menu-title::after { content: ""; height: 1px; flex: 1; background: var(--nice-border); }
.menu-link {
    min-height: 38px;
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    padding: 8px 10px;
    border-radius: 4px;
    color: #4d5d7c;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 4px;
}
.menu-link.active {
    background: #eef0ff;
    color: var(--nice-blue-dark);
    border-left: 3px solid var(--nice-blue);
}
.menu-link em {
    min-width: 20px;
    padding: 1px 6px;
    border: 1px solid #b6c4ff;
    border-radius: 5px;
    color: var(--nice-blue);
    font-style: normal;
    font-size: 11px;
    text-align: center;
}
.menu-link .chevron { color: #98a2b8; font-size: 12px; }
.submenu {
    display: none;
    margin: 2px 0 10px 0;
    padding-left: 0;
    border-left: 0;
    position: relative;
}
.submenu.open { display: block; }
.submenu.open::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 7px;
    left: 22px;
    width: 1px;
    background: #d9e2f5;
}
.submenu.nested {
    margin: 2px 0 6px 0;
    padding-left: 0;
}
.submenu.nested.open::before {
    left: 38px;
}
.submenu-link {
    min-height: 32px;
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    gap: 0;
    padding: 6px 10px 6px 34px;
    border-radius: 4px;
    color: #8490a9;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 3px;
    position: relative;
    z-index: 1;
}
.submenu-link.active {
    background: #eef0ff;
    color: var(--nice-blue);
    border-left: 3px solid var(--nice-blue);
    padding-left: 31px;
}
.submenu-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    border: 1px solid #b6c0d5;
    background: #fff;
}
.submenu-link.active .submenu-dot {
    background: var(--nice-blue);
    border-color: var(--nice-blue);
}
.submenu.nested .submenu-link {
    padding-left: 46px;
}
.submenu.nested .submenu-link.active {
    padding-left: 43px;
}
.js-submenu-toggle {
    cursor: pointer;
}
.js-submenu-toggle .chevron {
    transition: transform .18s ease;
}
.js-submenu-toggle.active .chevron {
    transform: rotate(0deg);
}
.sidebar-footer {
    margin-top: 80px;
}
.sidebar-profile,
.sidebar-actions {
    display: grid;
    gap: 8px;
}
.sidebar-profile {
    grid-template-columns: 30px 1fr 28px 28px;
    align-items: center;
    padding: 8px;
    border: 1px solid var(--nice-border);
}
.sidebar-actions {
    grid-template-columns: 1fr 1fr;
    margin-top: 8px;
}
.sidebar-actions button {
    border: 1px solid var(--nice-border);
    color: #687794;
    background: #fff;
    border-radius: 4px;
    padding: 8px 4px;
    font-size: 11px;
    font-weight: 800;
}

.nice-main {
    margin-left: 280px;
    padding: 92px 26px 40px;
    transition: margin-left .22s ease;
}
body.sidebar-hidden .nice-main { margin-left: 0; }
.page-heading h1 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 850;
}
.page-heading p { margin: 8px 0 24px; color: var(--nice-muted); }
.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 22px;
}
.metric-card,
.panel {
    background: var(--nice-panel);
    border: 1px solid var(--nice-border);
    box-shadow: 0 8px 22px rgba(65, 84, 241, .07);
}
.metric-card {
    position: relative;
    overflow: hidden;
    min-height: 116px;
    padding: 18px;
}
.metric-card::after {
    content: "";
    position: absolute;
    right: -44px;
    top: -72px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .22);
}
.metric-card.mint { background: #e1f0f1; }
.metric-card.blue { background: #dfeaff; }
.metric-card.amber { background: #f6efe5; }
.metric-card.violet { background: #e5e7ff; }
.metric-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    background: rgba(65, 84, 241, .12);
    color: var(--nice-blue);
    border-radius: 4px;
    margin-bottom: 14px;
}
.metric-card span,
.metric-card small {
    display: block;
    text-transform: uppercase;
    color: #78849c;
    font-size: 11px;
    font-weight: 850;
}
.metric-card strong {
    color: var(--nice-blue-dark);
    font-size: 20px;
}
.metric-card small { text-transform: none; }
.metric-card .up { color: #28a778; }
.metric-card .down { color: #f39c12; }
.dashboard-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(340px, .98fr);
    gap: 22px;
}
.panel { padding: 18px; }
.panel h2 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 16px;
    font-weight: 850;
}
.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}
.panel-head p {
    margin: 4px 0 0;
    color: var(--nice-muted);
    font-size: 12px;
}
.panel-head a { font-size: 12px; font-weight: 850; }
.segmented {
    display: inline-flex;
    border: 1px solid var(--nice-border);
}
.segmented button {
    border: 0;
    background: #fff;
    color: #7d88a3;
    padding: 7px 10px;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}
.segmented .active {
    background: #eef1ff;
    color: var(--nice-blue);
}
.mini-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--nice-border);
    margin-bottom: 22px;
}
.mini-summary div {
    padding: 14px;
    border-right: 1px solid var(--nice-border);
}
.mini-summary div:last-child { border-right: 0; }
.mini-summary span {
    display: block;
    color: #8a95ac;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 850;
}
.mini-summary strong { color: var(--nice-blue-dark); }
.chart-box svg { width: 100%; min-height: 260px; }
.grid-lines line { stroke: #dfE7f7; stroke-dasharray: 4 5; }
.line-primary,
.line-secondary {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.line-primary { stroke: #536dfe; }
.line-secondary { stroke: #f39c12; }
.months text { fill: #8490a9; font-size: 12px; }
.performance-panel,
.transactions-panel,
.targets-panel { grid-column: 1; }
.activity-panel,
.donut-panel,
.stability-panel { grid-column: 2; }
.activity-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 9px;
}
.activity-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e7edf9;
    padding: 9px 10px;
    color: #56627a;
    font-size: 13px;
}
.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
}
.green { background: #28a778; }
.blue { background: #3f7af3; }
.amber { background: #f39c12; }
.red { background: #f25a6a; }
.nice-table {
    width: 100%;
    border-collapse: collapse;
    color: #59667e;
}
.nice-table th {
    background: #eef3ff;
    color: #8a95ad;
    font-size: 11px;
    text-transform: uppercase;
}
.nice-table th,
.nice-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #e8edf8;
}
.status {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 850;
}
.status.ok { color: #1f9d66; background: #dff8ec; }
.status.wait { color: #c78100; background: #fff2cc; }
.status.fail { color: #e34b5e; background: #ffe4eb; }
.teal { background: #d6f4f2; }
.tan { background: #f6e2c8; }
.slate { background: #e6ebf3; }
.indigo { background: #e7e6ff; }
.donut-wrap { display: grid; place-items: center; padding: 16px 0; }
.donut {
    width: 190px;
    height: 190px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(#4154f1 0 38%, #28a778 38% 62%, #f39c12 62% 83%, #2d7ff9 83% 100%);
}
.donut::before {
    content: "";
    position: absolute;
    width: 118px;
    height: 118px;
    background: #fff;
    border-radius: 50%;
}
.donut { position: relative; }
.donut span {
    position: relative;
    text-align: center;
    color: #8b96ad;
}
.donut strong { color: var(--nice-blue); font-size: 18px; }
.mix-list {
    display: grid;
    gap: 8px;
}
.mix-list div {
    display: flex;
    justify-content: space-between;
    border: 1px solid #e8edf8;
    padding: 8px;
    color: #7a86a0;
    font-size: 12px;
}
.mix-list strong { color: var(--nice-blue-dark); }
.target-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 7px;
    align-items: center;
    margin: 12px 0;
    color: #68748e;
    font-size: 12px;
}
.target-row div {
    grid-column: 1 / -1;
    height: 7px;
    background: #eef2fb;
}
.target-row i {
    display: block;
    height: 100%;
    background: #28a778;
}
.target-row.blue i { background: #3f7af3; }
.target-row.violet i { background: var(--nice-blue); }
.target-row.amber i { background: #f39c12; }
.page-hero {
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    margin-bottom: 20px;
    background: #fff;
    border: 1px solid var(--nice-border);
    box-shadow: 0 8px 22px rgba(65, 84, 241, .06);
}
.page-hero h1 {
    margin: 0 0 8px;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 850;
}
.page-hero p {
    margin: 0;
    color: var(--nice-muted);
    font-size: 15px;
}
.hero-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.nice-action,
.outline-btn,
.danger-outline {
    min-height: 38px;
    border-radius: 4px;
    padding: 8px 16px;
    font-weight: 800;
}
.nice-action {
    border: 1px solid var(--nice-blue);
    background: var(--nice-blue);
    color: #fff;
}
.outline-btn {
    border: 1px solid #aeb8cc;
    background: #fff;
    color: #7a849a;
}
.danger-outline {
    border: 1px solid #ff6b81;
    background: #fff;
    color: #f0526e;
}
.content-split,
.settings-grid,
.roles-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(340px, .98fr);
    gap: 22px;
}
.edit-grid {
    display: grid;
    grid-template-columns: minmax(330px, .68fr) minmax(0, 1.4fr);
    gap: 22px;
}
.edit-grid > .side-stack { grid-row: span 3; }
.side-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.table-panel { padding: 0; overflow: hidden; }
.tabs-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-bottom: 1px solid #e8edf8;
}
.soft-tabs {
    display: flex;
    border: 1px solid #e6ecfa;
    border-radius: 4px;
    overflow: hidden;
}
.soft-tabs button,
.toolbar-search button,
.pager button {
    border: 0;
    background: #fff;
    color: #7e8aa3;
    font-weight: 800;
}
.soft-tabs button {
    padding: 9px 14px;
}
.soft-tabs .active {
    color: var(--nice-blue-dark);
    background: #f8faff;
}
.toolbar-search {
    display: grid;
    grid-template-columns: 24px minmax(170px, 1fr) auto;
    align-items: center;
    gap: 8px;
}
.toolbar-search input {
    height: 38px;
    border: 1px solid #e3e9f7;
    border-radius: 4px;
    padding: 0 12px;
}
.toolbar-search button {
    height: 38px;
    border: 1px solid #e3e9f7;
    padding: 0 12px;
    border-radius: 4px;
}
.directory-table td small,
.mini-person small,
.feed-row small,
.role-row small,
.toggle-row small,
.rule-row small {
    display: block;
    color: var(--nice-muted);
}
.role-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 850;
    font-size: 12px;
}
.role-pill.admin { background: #ffe5ec; color: #f0526e; }
.role-pill.manager { background: #fff0cf; color: #d88c00; }
.role-pill.user { background: #e7f0ff; color: #3f7af3; }
.state-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 8px;
}
.state-dot.active { background: #28a778; }
.state-dot.inactive { background: #7d879b; }
.state-dot.pending { background: #f39c12; }
.row-actions {
    display: flex;
    gap: 16px;
    color: #8b96ad;
}
.table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    color: var(--nice-muted);
}
.pager {
    display: flex;
    gap: 4px;
}
.pager button {
    width: 32px;
    height: 32px;
    border: 1px solid #e3e9f7;
    border-radius: 4px;
}
.pager .active { background: var(--nice-blue); color: #fff; }
.snapshot-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 16px;
}
.snapshot-grid div {
    padding: 14px;
    background: #f0f1ff;
    border-radius: 4px;
}
.snapshot-grid .green-bg { background: #eaf7f1; }
.snapshot-grid .amber-bg { background: #fff6e8; }
.snapshot-grid .red-bg { background: #fff0f2; }
.snapshot-grid span,
.metric-lite span,
.kv-block span,
.info-grid span {
    display: block;
    color: #8792aa;
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}
.snapshot-grid strong,
.metric-lite strong { color: var(--nice-blue-dark); font-size: 20px; }
.snapshot-grid small { display: block; color: #6f7b93; }
.mini-person {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #edf2fb;
}
.profile-head {
    display: flex;
    align-items: center;
    gap: 18px;
}
.big-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(160deg, #e7eefc, #2d85db);
    color: #fff;
    font-size: 26px;
    font-weight: 900;
}
.chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border: 1px solid #dfe7f6;
    border-radius: 999px;
    color: #68748e;
    font-weight: 800;
    font-size: 12px;
    margin-right: 4px;
}
.feed-row {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #edf2fb;
}
.feed-row em {
    color: #98a3b8;
    font-style: normal;
}
.kv-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #edf2fb;
    color: #7b879f;
}
.kv-row strong { color: var(--nice-blue-dark); }
.form-panel label,
.form-grid label {
    display: grid;
    gap: 8px;
    color: #274578;
    font-weight: 800;
}
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 18px;
}
.form-grid .wide { grid-column: 1 / -1; }
.form-grid input,
.form-grid textarea,
.form-grid select {
    min-height: 42px;
    border: 1px solid #dfe7f6;
    border-radius: 4px;
    padding: 9px 12px;
    color: #5d687e;
}
.form-grid textarea { min-height: 104px; }
.identity-body {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    min-height: 150px;
}
.danger-zone { border-color: #ffd3dc; }
.danger-zone h2 { color: #f0526e; }
.metric-grid.compact { margin-bottom: 18px; }
.metric-lite { padding: 18px; }
.eyebrow {
    color: var(--nice-blue);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 900;
    font-size: 12px;
}
.body-copy {
    color: #5f6c83;
    line-height: 1.6;
}
.info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.info-grid div {
    border: 1px solid #e5ebf8;
    padding: 14px;
}
.tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tag-cloud span {
    border: 1px solid #c8d1ff;
    color: var(--nice-blue);
    background: #f3f5ff;
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 800;
    font-size: 12px;
}
.tab-list a {
    display: grid;
    grid-template-columns: 26px 1fr;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border-radius: 4px;
    color: #68748e;
}
.tab-list a.active {
    background: #eef0ff;
    color: var(--nice-blue);
}
.toggle-row,
.rule-row,
.role-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #edf2fb;
}
.switch input { display: none; }
.switch i {
    display: block;
    width: 42px;
    height: 22px;
    border-radius: 999px;
    background: #edf2fb;
    position: relative;
}
.switch i::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #7b879f;
    transition: left .16s ease, background .16s ease;
}
.switch input:checked + i { background: var(--nice-blue); }
.switch input:checked + i::after {
    left: 23px;
    background: #fff;
}
.rule-row em {
    min-width: 76px;
    text-align: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}
.rule-row .high { color: #f0526e; background: #ffe5ec; }
.rule-row .medium { color: #d88c00; background: #fff0cf; }
.rule-row .low { color: #3f7af3; background: #e7f0ff; }
.roles-grid { grid-template-columns: minmax(320px, .7fr) minmax(0, 1.4fr); }
.role-row {
    justify-content: flex-start;
}
.role-row.active {
    background: #eef0ff;
    border-left: 3px solid var(--nice-blue);
    padding-left: 12px;
}
.role-icon {
    width: 34px;
    height: 34px;
    border-radius: 4px;
    display: grid;
    place-items: center;
    background: #ffe5ec;
    color: #f0526e;
}
.permissions-panel { padding: 0; overflow: hidden; }
.permissions-panel .panel-head { padding: 18px; margin: 0; }
.permissions-table input {
    width: 16px;
    height: 16px;
    accent-color: var(--nice-blue);
}
.module-row td {
    background: #eef3ff;
    color: var(--nice-blue-dark);
    font-weight: 900;
}
.redbar i { background: #f0526e; }

.add-user-modal .modal-dialog {
    max-width: 700px;
}
.add-user-modal .modal-content {
    border: 1px solid #cfd8ee;
    border-radius: 5px;
    box-shadow: 0 24px 80px rgba(1, 41, 112, .22);
}
.add-user-modal .modal-backdrop,
.modal-backdrop.show {
    opacity: .52;
}
.add-user-modal .modal-header {
    min-height: 94px;
    padding: 0 28px;
    border-bottom: 1px solid #dfe7f6;
}
.add-user-modal .modal-title {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 850;
}
.add-user-modal .btn-close {
    width: 22px;
    height: 22px;
    opacity: .62;
    box-shadow: none;
}
.add-user-modal .modal-body {
    padding: 30px 28px 24px;
}
.add-user-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px 28px;
}
.add-user-grid label {
    display: grid;
    gap: 12px;
    color: var(--nice-blue-dark);
    font-size: 18px;
    font-weight: 800;
}
.add-user-grid .wide {
    grid-column: 1 / -1;
}
.add-user-grid input,
.add-user-grid select {
    width: 100%;
    height: 58px;
    border: 1px solid #d9e2f8;
    border-radius: 5px;
    padding: 0 20px;
    color: #53617a;
    background: #fff;
    outline: 0;
    font-size: 18px;
    font-weight: 500;
}
.add-user-grid input::placeholder {
    color: #a1adbf;
}
.add-user-grid input:focus,
.add-user-grid select:focus {
    border-color: var(--nice-blue);
    box-shadow: 0 0 0 4px rgba(65, 84, 241, .1);
}
.modal-check {
    display: inline-flex !important;
    grid-template-columns: 28px 1fr;
    align-items: center;
    gap: 12px !important;
    color: #4f5c75 !important;
    font-size: 20px !important;
    font-weight: 600 !important;
}
.modal-check input {
    width: 26px;
    height: 26px;
    padding: 0;
    accent-color: var(--nice-blue);
}
.add-user-modal .modal-footer {
    min-height: 104px;
    gap: 16px;
    padding: 22px 28px;
    border-top: 1px solid #dfe7f6;
    background: #fff;
}
.modal-cancel,
.modal-submit {
    min-width: 120px;
    height: 54px;
    border: 0;
    border-radius: 5px;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
}
.modal-cancel {
    background: #6f798d;
}
.modal-submit {
    min-width: 142px;
    background: var(--nice-blue);
}

.register-auth-body {
    background: linear-gradient(120deg, #f1f5ff 0%, #fafcff 58%, #edf7ff 100%);
}
.register-auth-main {
    padding-top: 78px;
}
.register-card {
    width: min(100%, 760px);
    padding: 36px;
    border-radius: 6px;
}
.register-card h1 {
    font-size: 38px;
}
.register-name-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}
.field-help {
    display: block;
    margin-top: 9px;
    color: var(--nice-muted);
    font-weight: 700;
}
.terms-line {
    justify-content: flex-start;
    margin: 20px 0 24px;
}
.terms-line a {
    font-weight: 850;
}

.app-page-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}
.app-page-title h1 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 850;
}
.app-page-title nav {
    color: var(--nice-muted);
    font-size: 13px;
    font-weight: 700;
}
.app-page-title span {
    margin: 0 8px;
}

.calendar-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 26px;
}
.calendar-sidebar {
    display: grid;
    align-content: start;
    gap: 20px;
}
.calendar-mini,
.calendar-list,
.upcoming-events,
.calendar-board {
    padding: 0;
    overflow: hidden;
}
.calendar-mini .panel-head,
.calendar-list h2,
.upcoming-events h2 {
    padding: 18px;
    margin: 0;
    border-bottom: 1px solid #e8edf8;
}
.mini-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    padding: 18px;
    text-align: center;
    color: #76829b;
}
.mini-calendar-grid strong {
    color: #8d98af;
    font-size: 12px;
}
.mini-calendar-grid span {
    min-height: 32px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    font-weight: 700;
}
.mini-calendar-grid .active {
    color: var(--nice-blue);
    background: #dfe4ff;
}
.mini-calendar-grid .muted-day {
    color: #c1c9d8;
}
.calendar-list > div {
    display: grid;
    grid-template-columns: 16px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    color: #64718b;
    font-weight: 700;
}
.calendar-list em {
    min-width: 26px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #eef2fb;
    color: #8a94aa;
    font-style: normal;
}
.cal-square {
    width: 12px;
    height: 12px;
    border-radius: 3px;
}
.cal-square.blue { background: #4154f1; }
.cal-square.green { background: #28a778; }
.cal-square.amber { background: #f39c12; }
.cal-square.red { background: #f0526e; }
.cal-square.sky { background: #2d7ff9; }
.upcoming-events article {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid #edf2fb;
    border-left: 4px solid var(--nice-blue);
}
.upcoming-events article.green { border-left-color: #28a778; }
.upcoming-events article.red { border-left-color: #f0526e; }
.upcoming-events article.amber { border-left-color: #f39c12; }
.upcoming-events article strong {
    color: var(--nice-blue-dark);
    font-size: 22px;
    line-height: 1;
}
.upcoming-events article small {
    display: block;
    color: var(--nice-muted);
    font-size: 12px;
}
.calendar-toolbar {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid #e8edf8;
}
.cal-left {
    display: flex;
    align-items: center;
    gap: 10px;
}
.cal-left h2 {
    margin-left: 8px;
    font-size: 22px;
}
.month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(110px, 1fr));
    border-top: 0;
}
.month-head,
.month-cell {
    border-right: 1px solid #e1e8f8;
    border-bottom: 1px solid #e1e8f8;
}
.month-head {
    min-height: 44px;
    display: grid;
    place-items: center;
    color: #8792aa;
    background: #fbfcff;
    font-size: 12px;
    font-weight: 850;
}
.month-cell {
    min-height: 126px;
    padding: 14px;
    color: #59667e;
    font-weight: 800;
    position: relative;
}
.month-cell.outside {
    color: #bec7d8;
    background: #fbfcff;
}
.month-cell.today {
    background: #f0f2ff;
}
.month-cell.today strong {
    position: absolute;
    top: 14px;
    left: 16px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--nice-blue);
}
.month-cell.today > span {
    opacity: 0;
}

.chat-shell {
    min-height: calc(100vh - 180px);
    display: grid;
    grid-template-columns: 330px 1fr;
    padding: 0;
    overflow: hidden;
}
.chat-list {
    border-right: 1px solid #e1e8f8;
    padding: 20px;
}
.chat-search {
    height: 44px;
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: center;
    margin: 14px 0;
    padding: 0 10px;
    border: 1px solid #e0e7f6;
    border-radius: 4px;
    color: #97a2b6;
    background: #f7f9ff;
}
.chat-search input {
    border: 0;
    outline: 0;
    background: transparent;
}
.chat-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 8px;
}
.chat-tabs button {
    border: 0;
    border-radius: 4px;
    background: #fff;
    color: #7d88a3;
    padding: 9px;
    font-weight: 800;
}
.chat-tabs .active {
    color: var(--nice-blue);
    background: #eef0ff;
}
.chat-tabs span {
    padding: 2px 6px;
    border-radius: 4px;
    color: #fff;
    background: var(--nice-blue);
}
.chat-thread {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 13px 8px;
    color: #4f5d76;
    border-left: 3px solid transparent;
}
.chat-thread.active {
    background: #f3f5ff;
    border-left-color: var(--nice-blue);
}
.chat-thread strong,
.chat-room-head strong {
    display: block;
    color: var(--nice-blue-dark);
}
.chat-thread small {
    display: block;
    max-width: 170px;
    overflow: hidden;
    color: var(--nice-muted);
    white-space: nowrap;
    text-overflow: ellipsis;
}
.chat-thread em {
    color: #8b96ad;
    font-size: 11px;
    font-style: normal;
}
.chat-room {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    min-width: 0;
}
.chat-room-head {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px;
    border-bottom: 1px solid #e1e8f8;
}
.chat-room-head > div:first-child {
    display: grid;
    grid-template-columns: 38px auto;
    align-items: center;
    gap: 12px;
}
.chat-room-head small {
    display: block;
    color: #28a778;
}
.chat-actions {
    display: flex;
    gap: 10px;
}
.chat-actions button,
.chat-compose button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    color: #8490a9;
    background: #f1f4fb;
}
.chat-date {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 18px;
    padding: 34px 22px 18px;
    color: #9aa4b6;
    font-size: 12px;
    font-weight: 800;
}
.chat-date span {
    height: 1px;
    background: #e1e8f8;
}
.messages-area {
    min-height: 660px;
    padding: 0 22px 24px;
}
.message {
    display: grid;
    grid-template-columns: 38px auto;
    gap: 12px;
    align-items: end;
    margin: 18px 0;
    max-width: 650px;
}
.message p,
.file-bubble {
    margin: 0;
    padding: 13px 18px;
    border-radius: 12px;
    background: #f1f4fb;
    color: #59667e;
    font-weight: 700;
}
.message small {
    grid-column: 2;
    color: #96a1b6;
    font-size: 11px;
}
.message.outbound {
    margin-left: auto;
    grid-template-columns: auto;
    justify-items: end;
}
.message.outbound p {
    color: #fff;
    background: var(--nice-blue);
}
.message.outbound small {
    grid-column: 1;
    color: var(--nice-blue);
}
.message.stack p {
    grid-column: 2;
    margin-bottom: 6px;
}
.file-bubble {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--nice-blue-dark);
    background: #eef2ff;
}
.file-bubble span small {
    display: block;
    color: #7a849a;
}
.chat-compose {
    min-height: 72px;
    display: grid;
    grid-template-columns: 38px 38px 1fr 38px 48px;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-top: 1px solid #e1e8f8;
    background: #f7f9ff;
}
.chat-compose input {
    border: 0;
    outline: 0;
    background: transparent;
}
.chat-compose .send-btn {
    width: 48px;
    height: 48px;
    color: #fff;
    background: var(--nice-blue);
}

.file-shell {
    display: grid;
    grid-template-columns: 320px 1fr;
    padding: 0;
    min-height: calc(100vh - 200px);
    overflow: hidden;
}
.file-nav {
    border-right: 1px solid #e1e8f8;
    display: grid;
    align-content: start;
}
.file-nav > .nice-action {
    width: calc(100% - 48px) !important;
    margin: 24px;
}
.file-nav-section {
    padding: 16px 24px;
    border-top: 1px solid #e1e8f8;
}
.file-nav-section h3 {
    margin: 0 0 12px;
    color: #8c98b3;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}
.file-nav-section a {
    min-height: 46px;
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 0 8px;
    border-radius: 4px;
    color: #5f6c83;
    font-weight: 800;
}
.file-nav-section a.active {
    color: var(--nice-blue);
    background: #eef0ff;
}
.file-nav-section em {
    min-width: 26px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 5px;
    color: #fff;
    background: var(--nice-blue);
    font-style: normal;
}
.file-nav-section em.green-bg {
    background: #28a778;
}
.file-storage {
    margin-top: auto;
    padding: 24px;
    border-top: 1px solid #e1e8f8;
    color: #7a849a;
}
.file-storage div {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}
.file-storage p {
    height: 7px;
    background: #eef2fb;
}
.file-storage i {
    display: block;
    height: 100%;
    background: var(--nice-blue);
}
.file-main {
    padding: 22px 26px 34px;
}
.file-toolbar {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 320px) auto auto auto auto;
    gap: 10px;
    align-items: center;
    margin-bottom: 28px;
}
.file-toolbar .toolbar-search {
    grid-template-columns: 24px 1fr;
}
.breadcrumb-lite {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #7a849a;
    font-weight: 700;
}
.file-main h2 {
    margin: 24px 0 14px;
    font-size: 16px;
}
.quick-access-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 18px;
}
.quick-access-row article {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 92px;
    padding: 18px;
    background: #f3f5fc;
    border-radius: 4px;
}
.quick-access-row i {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 5px;
    font-size: 25px;
    background: #dfe5ff;
}
.quick-access-row strong,
.folder-grid strong,
.file-grid strong {
    display: block;
    color: var(--nice-blue-dark);
}
.quick-access-row small,
.folder-grid small,
.file-grid small {
    color: var(--nice-muted);
}
.quick-access-row .green { color: #28a778; background: #daf5e9; }
.quick-access-row .sky { color: #2d7ff9; background: #e1efff; }
.quick-access-row .purple { color: #9d55f1; background: #efe5ff; }
.folder-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    gap: 18px;
}
.folder-grid article,
.file-grid article {
    min-height: 142px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 9px;
    padding: 14px;
    text-align: center;
    background: #f3f5fc;
    border: 1px solid transparent;
    border-radius: 4px;
}
.folder-grid article.selected {
    border-color: var(--nice-blue);
    background: #eef0ff;
    box-shadow: inset 0 0 0 1px var(--nice-blue);
}
.folder-grid i {
    color: #ffc02b;
    font-size: 42px;
}
.file-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(142px, 1fr));
    gap: 18px;
}
.file-grid i {
    font-size: 44px;
    color: var(--nice-blue);
    background: transparent;
}
.file-grid i.blue,
.file-grid i.red,
.file-grid i.green,
.file-grid i.amber,
.file-grid i.purple {
    background: transparent;
}
.file-grid i.red { color: #f0526e; }
.file-grid i.green { color: #28a778; }
.file-grid i.amber { color: #f39c12; }
.file-grid i.purple { color: #9d55f1; }
.file-thumb {
    width: 110px;
    height: 58px;
    border-radius: 4px;
    background:
        linear-gradient(25deg, rgba(1, 41, 112, .12), rgba(65, 84, 241, .08)),
        url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=220&q=70");
    background-size: cover;
    background-position: center;
}
.placeholder-panel {
    min-height: 420px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    text-align: center;
}
.placeholder-panel > i {
    color: var(--nice-blue);
    font-size: 48px;
}

.utility-hero,
.pricing-hero {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 28px;
    margin-bottom: 22px;
    background: #fff;
    border: 1px solid var(--nice-border);
    box-shadow: 0 8px 22px rgba(65, 84, 241, .06);
}
.utility-hero h1,
.pricing-hero h1 {
    margin: 8px 0 10px;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 850;
}
.utility-hero p,
.pricing-hero p {
    margin: 0 0 16px;
    color: var(--nice-muted);
}
.utility-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.utility-tags span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid var(--nice-border);
    border-radius: 4px;
    color: #64718b;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
}
.invoice-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}
.invoice-metrics article {
    display: grid;
    grid-template-columns: 44px 1fr;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 14px;
    background: #fff;
    border: 1px solid var(--nice-border);
    box-shadow: 0 8px 22px rgba(65, 84, 241, .05);
}
.invoice-metrics i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    color: var(--nice-blue);
    background: #eef0ff;
    grid-row: span 2;
}
.invoice-metrics .green-box { color: #28a778; background: #dff8ec; }
.invoice-metrics .amber-box { color: #f39c12; background: #fff1d4; }
.invoice-metrics .red-box { color: #f0526e; background: #ffe4eb; }
.invoice-metrics span {
    color: #8792aa;
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}
.invoice-metrics strong {
    color: var(--nice-blue-dark);
    font-size: 16px;
}
.invoice-layout,
.pricing-bottom {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(360px, .98fr);
    gap: 22px;
}
.invoice-register,
.invoice-paper {
    padding: 0;
    overflow: hidden;
}
.invoice-register .panel-head {
    padding: 18px;
    margin: 0;
}
.invoice-register .toolbar-search {
    grid-template-columns: 24px minmax(220px, 1fr) auto;
}
.client-initial {
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    margin-right: 10px;
    border-radius: 4px;
    color: var(--nice-blue);
    background: #e8edff;
    font-weight: 850;
}
.status.paid,
.status.draft,
.status.pending,
.status.overdue {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 4px;
}
.status.paid { color: #28a778; background: #dff8ec; }
.status.pending { color: #f39c12; background: #fff1d4; }
.status.overdue { color: #f0526e; background: #ffe4eb; }
.status.draft { color: #6f7b93; background: #e9edf5; }
.collection-health,
.due-list,
.quick-actions,
.client-card {
    padding: 0;
    overflow: hidden;
}
.collection-health h2,
.due-list h2,
.quick-actions h2,
.client-card h2 {
    padding: 18px;
    border-bottom: 1px solid #e8edf8;
}
.health-row,
.due-list article,
.quick-actions button {
    margin: 0 18px;
}
.health-row {
    padding: 13px 0;
}
.health-row div {
    display: flex;
    justify-content: space-between;
    color: #738099;
}
.health-row strong {
    color: var(--nice-blue-dark);
}
.health-row p {
    height: 8px;
    margin: 7px 0 0;
    border-radius: 999px;
    background: #eef2fb;
    overflow: hidden;
}
.health-row i {
    display: block;
    height: 100%;
    background: #28a778;
}
.health-row.amber i { background: #f39c12; }
.health-row.red i { background: #f0526e; }
.due-list article {
    display: grid;
    gap: 4px;
    padding: 14px 10px;
    border: 1px solid #edf2fb;
    border-radius: 4px;
    margin-top: 12px;
}
.due-list article:last-child {
    margin-bottom: 18px;
}
.due-list strong {
    color: var(--nice-blue-dark);
}
.due-list span {
    color: var(--nice-muted);
}
.quick-actions {
    padding-bottom: 18px;
}
.quick-actions button {
    width: calc(100% - 36px);
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    border: 1px solid #edf2fb;
    background: #fff;
    color: #60708c;
    border-radius: 4px;
    font-weight: 700;
}
.invoice-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 8px;
    margin-top: 18px;
}
.invoice-summary-grid div {
    padding: 12px;
    border: 1px solid var(--nice-border);
    border-radius: 4px;
}
.invoice-summary-grid span,
.invoice-addresses span,
.invoice-totals span {
    display: block;
    color: #8792aa;
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}
.invoice-paper {
    padding: 24px;
}
.invoice-paper-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 26px;
}
.invoice-paper-head > div:first-child {
    display: grid;
    grid-template-columns: 32px 1fr;
    align-items: center;
    gap: 10px;
}
.invoice-paper-head small {
    grid-column: 2;
    color: var(--nice-muted);
}
.invoice-paper-head h2 {
    text-align: right;
    font-size: 20px;
    letter-spacing: .05em;
}
.invoice-addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
.invoice-addresses article {
    padding: 16px;
    border: 1px solid #e8edf8;
    border-radius: 4px;
}
.invoice-addresses p,
.invoice-notes p {
    margin: 8px 0 0;
    color: var(--nice-muted);
    line-height: 1.55;
}
.line-items small {
    display: block;
    color: var(--nice-muted);
    margin-top: 5px;
}
.invoice-totals {
    width: min(420px, 100%);
    margin: 28px 0 24px auto;
}
.invoice-totals div {
    display: flex;
    justify-content: space-between;
    padding: 9px 0;
    border-bottom: 1px solid #edf2fb;
}
.invoice-totals div:nth-child(4) strong,
.invoice-totals div:last-child strong {
    color: var(--nice-blue-dark);
    font-size: 18px;
}
.invoice-notes {
    border-top: 1px solid #edf2fb;
    padding-top: 18px;
}
.client-card {
    padding-bottom: 18px;
}
.client-card > div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px;
}
.client-card small {
    display: block;
    color: var(--nice-muted);
}
.client-card button {
    margin-left: 18px;
}
.pricing-hero {
    align-items: stretch;
}
.pricing-hero > div {
    flex: 1;
}
.pricing-hero aside {
    width: 300px;
    padding: 16px;
    border: 1px solid #e8edf8;
    border-radius: 4px;
}
.pricing-hero aside p {
    display: flex;
    gap: 8px;
    margin: 10px 0;
    color: #60708c;
    font-weight: 700;
}
.billing-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px;
    margin: 8px 0 14px;
    border: 1px solid var(--nice-border);
    border-radius: 5px;
    background: #fff;
}
.billing-toggle button,
.billing-toggle span {
    border: 0;
    border-radius: 4px;
    padding: 9px 14px;
    background: transparent;
    color: #6f7b93;
    font-weight: 850;
}
.billing-toggle .active {
    color: #fff;
    background: var(--nice-blue);
}
.billing-toggle span {
    color: #28a778;
    background: #def8ec;
}
.pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 22px;
}
.price-card {
    position: relative;
    padding: 22px;
}
.price-card.recommended {
    border-color: var(--nice-blue);
}
.price-card em {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 5px 10px;
    border-radius: 4px;
    color: #fff;
    background: var(--nice-blue);
    font-style: normal;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}
.price-card p {
    color: var(--nice-muted);
}
.price-card > strong {
    display: block;
    color: var(--nice-blue-dark);
    font-size: 40px;
    margin: 14px 0;
}
.price-card > strong small {
    color: var(--nice-muted);
    font-size: 13px;
}
.price-card span {
    display: flex;
    gap: 8px;
    margin: 11px 0;
    color: #60708c;
}
.price-card span i {
    color: #28a778;
}
.price-card button {
    margin-top: 12px;
}
.price-card > small {
    display: block;
    margin-top: 10px;
    text-align: center;
    color: var(--nice-muted);
}
.feature-matrix {
    padding: 0;
    overflow: hidden;
}
.feature-matrix .panel-head {
    padding: 18px;
    margin: 0;
}
.faq-card article {
    padding: 14px;
    margin: 12px 0;
    border: 1px solid #edf2fb;
    border-radius: 4px;
}
.faq-card p {
    margin: 6px 0 0;
    color: var(--nice-muted);
}

body.dark-theme {
    --nice-bg: #071528;
    --nice-panel: #102743;
    --nice-border: #28486f;
    --nice-muted: #8fa7c8;
    --nice-text: #d7e3f8;
    --nice-sidebar: #0b1d35;
    --nice-blue-dark: #e7efff;
    background: var(--nice-bg);
    color: var(--nice-text);
}
body.dark-theme .nice-header,
body.dark-theme .nice-sidebar,
body.dark-theme .panel,
body.dark-theme .page-hero,
body.dark-theme .metric-card,
body.dark-theme .metric-lite,
body.dark-theme .top-panel,
body.dark-theme .icon-btn,
body.dark-theme .small-pill,
body.dark-theme .user-button,
body.dark-theme .search-box,
body.dark-theme .search-box input,
body.dark-theme .menu-link,
body.dark-theme .submenu-link,
body.dark-theme .sidebar-profile,
body.dark-theme .sidebar-actions button,
body.dark-theme .outline-btn,
body.dark-theme .form-grid input,
body.dark-theme .form-grid textarea,
body.dark-theme .form-grid select {
    background: #102743;
    border-color: #28486f;
    color: var(--nice-text);
}
body.dark-theme .nice-sidebar,
body.dark-theme .nice-header {
    background: #0b1d35;
}
body.dark-theme .nice-main {
    background: #071528;
}
body.dark-theme .menu-link.active,
body.dark-theme .submenu-link.active,
body.dark-theme .tab-list a.active,
body.dark-theme .role-row.active {
    background: #193863;
    color: #5f95ff;
}
body.dark-theme .metric-card.mint,
body.dark-theme .metric-card.blue,
body.dark-theme .metric-card.amber,
body.dark-theme .metric-card.violet {
    background: #102743;
}
body.dark-theme .nice-table th,
body.dark-theme .module-row td,
body.dark-theme .mini-summary div,
body.dark-theme .notif-stats div {
    background: #0a182b;
    border-color: #28486f;
}
body.dark-theme .nice-table td,
body.dark-theme .panel-title,
body.dark-theme .feed-item,
body.dark-theme .message-tabs,
body.dark-theme .profile-panel-head,
body.dark-theme .profile-signout,
body.dark-theme .activity-list li,
body.dark-theme .kv-row,
body.dark-theme .feed-row,
body.dark-theme .toggle-row,
body.dark-theme .rule-row {
    border-color: #28486f;
}
body.dark-theme .top-panel h3,
body.dark-theme .language-panel strong,
body.dark-theme .quick-panel strong,
body.dark-theme .feed-item strong,
body.dark-theme .profile-panel-head strong,
body.dark-theme .profile-panel > a,
body.dark-theme .page-hero h1,
body.dark-theme .panel h2,
body.dark-theme .metric-card strong {
    color: #e7efff;
}
body.dark-theme .language-panel a.active,
body.dark-theme .quick-primary,
body.dark-theme .message-tabs .active,
body.dark-theme .snapshot-grid div {
    background: #193863;
}
body.dark-theme .language-panel h3,
body.dark-theme .quick-panel h3,
body.dark-theme .panel-title,
body.dark-theme .profile-panel-head,
body.dark-theme .panel-footer-link {
    background: #0a182b;
}
body.dark-theme .language-panel a:hover,
body.dark-theme .feed-item:hover,
body.dark-theme .profile-panel > a:hover {
    background: #142f54;
}
body.dark-theme .message-tabs button {
    background: #102743;
    border-color: #28486f;
    color: var(--nice-text);
}
body.dark-theme .profile-signout a {
    background: #291d31;
    border-color: #7d314a;
    color: #ff8ca2;
}
body.dark-theme .theme-toggle {
    background: #0b1d35;
    color: #9dbbff;
}

@media (max-width: 1180px) {
    .metric-grid,
    .dashboard-layout,
    .content-split,
    .settings-grid,
    .roles-grid,
    .edit-grid,
    .invoice-layout,
    .pricing-bottom,
    .pricing-grid,
    .invoice-metrics { grid-template-columns: 1fr 1fr; }
    .performance-panel,
    .transactions-panel,
    .targets-panel,
    .activity-panel,
    .donut-panel,
    .stability-panel { grid-column: auto; }
}
@media (max-width: 900px) {
    .demo-bar { grid-template-columns: 1fr; }
    .demo-title,
    .demo-download { display: none; }
    .nice-header { grid-template-columns: 1fr auto; }
    .header-center { display: none; }
    .nice-sidebar {
        transform: translateX(-100%);
        transition: transform .2s ease;
    }
    .nice-sidebar.open { transform: translateX(0); }
    .nice-main { margin-left: 0; }
    .metric-grid,
    .dashboard-layout,
    .content-split,
    .settings-grid,
    .roles-grid,
    .edit-grid,
    .invoice-layout,
    .pricing-bottom,
    .pricing-grid,
    .invoice-metrics,
    .invoice-summary-grid,
    .invoice-addresses,
    .form-grid,
    .info-grid,
    .social-row { grid-template-columns: 1fr; }
    .edit-grid > .side-stack { grid-row: auto; }
    .utility-hero,
    .pricing-hero {
        flex-direction: column;
    }
    .pricing-hero aside {
        width: 100%;
    }
}
@media (max-width: 640px) {
    .nice-dashboard-body { padding-top: 84px; }
    .nice-dashboard-body .nice-header { inset: 84px 0 auto; }
    .nice-dashboard-body .nice-sidebar { top: 146px; }
    .nice-login-card { padding: 24px; }
    .nice-login-card h1 { font-size: 28px; }
    .smart-portal-banner {
        height: 84px;
        grid-template-columns: 58px 1fr;
        padding: 0 14px;
        column-gap: 12px;
    }
    .smart-banner-logo {
        width: 50px;
        height: 50px;
    }
    .smart-portal-banner h1 {
        font-size: clamp(12px, 3.4vw, 18px);
        line-height: 1.15;
        text-align: left;
    }
    .smart-portal-banner h1 span {
        border-right-width: 2px;
    }
    .smart-nav-spacer {
        height: 34px;
    }
    .smart-login-main {
        min-height: calc(100vh - 118px);
        padding: 20px 14px 88px;
    }
    .smart-login-card {
        padding: 26px 18px 30px;
    }
    .smart-login-card .login-muted {
        margin-bottom: 36px;
        font-size: 15px;
    }
    .smart-login-card .nice-field label {
        font-size: 14px;
    }
    .smart-input-wrap input,
    .smart-login-card .password-wrap input {
        font-size: 14px;
    }
    .smart-login-card .nice-submit {
        margin-top: 24px;
    }
    .login-options { align-items: flex-start; flex-direction: column; gap: 10px; }
    .header-actions .small-pill,
    .header-actions .icon-btn:nth-of-type(2),
    .header-actions .icon-btn:nth-of-type(3) { display: none; }
}

/* Added for grouped settings */
.settings-shell { display: flex; gap: 1rem; }
.settings-sidebar { width: 220px; flex-shrink: 0; border-right: 1px solid #e3e6ea; }
.settings-nav-link { display: block; padding: .6rem .9rem; border-radius: .375rem; color: #444; text-decoration: none; }
.settings-nav-link:hover { background: #f4f6f8; }
.settings-nav-link.active { background: #012970; color: #fff; }
.settings-nav-link.disabled { color: #aaa; cursor: not-allowed; }
.settings-panel { flex: 1; min-width: 0; }
.settings-panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.workshop-job-shell { align-items: flex-start; }
.workshop-flow-sidebar {
    position: sticky;
    top: 92px;
    width: 260px;
    padding-right: 14px;
}
.workshop-flow-sidebar .settings-nav-link {
    margin-bottom: 8px;
    font-weight: 700;
}
.workshop-anchor {
    display: block;
    width: 0;
    height: 0;
    scroll-margin-top: 96px;
}

@media (max-width: 991px) {
    .workshop-job-shell {
        flex-direction: column;
    }
    .workshop-flow-sidebar {
        position: static;
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid #e3e6ea;
        padding: 0 0 12px;
    }
}

/* Unified Users List styling for all module pages */
.nice-main .page-hero,
.nice-main .settings-panel-head,
.nice-main .pagetitle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    min-height: auto;
    margin-bottom: 1.5rem;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.nice-main .page-hero h1,
.nice-main .settings-panel-head h1,
.nice-main .settings-panel-head h2,
.nice-main .pagetitle h1 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 28px;
    font-weight: 700;
}

.nice-main .page-hero p,
.nice-main .pagetitle p {
    margin: 6px 0 0;
    color: var(--nice-muted);
    font-size: 15px;
}

.hero-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.nice-main .content-split {
    display: block;
}

.nice-main .content-split > .side-stack {
    display: none;
}

.nice-main .panel,
.nice-main .card,
.nice-main > .table-responsive,
.nice-main > table.table {
    background: #fff;
    border: 1px solid var(--nice-border);
    border-radius: 8px;
    box-shadow: none;
}

.nice-main .panel,
.nice-main > .table-responsive {
    padding: 18px;
}

.nice-main .table-panel {
    padding: 0;
    overflow: hidden;
}

.nice-main .card {
    overflow: visible;
}

.nice-main .card-header {
    background: #fff;
    border-bottom: 1px solid #e8edf8;
    color: var(--nice-blue-dark);
    font-weight: 700;
}

.nice-main .card-body,
.nice-main .modal-body {
    color: #59667e;
}

.nice-main .form-label,
.nice-main label.form-label {
    color: #5f6b84;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: .35rem;
}

.nice-main .row.g-3 {
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 1rem;
}

.nice-main .tabs-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 1rem;
    border-bottom: 0;
    flex-wrap: wrap;
}

.nice-main .soft-tabs {
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}

.nice-main .soft-tabs button {
    min-height: 38px;
    padding: 7px 14px;
    background: #fff;
    color: #6c757d;
    border-right: 1px solid #dee2e6;
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
}

.nice-main .soft-tabs button:last-child {
    border-right: 0;
}

.nice-main .soft-tabs .active {
    background: #f8f9fa;
    color: var(--nice-blue-dark);
}

.nice-main .toolbar-search {
    display: flex;
    align-items: center;
    gap: 0;
    min-width: min(100%, 360px);
}

.nice-main .toolbar-search i {
    display: grid;
    place-items: center;
    width: 42px;
    height: 38px;
    border: 1px solid #ced4da;
    border-right: 0;
    border-radius: 6px 0 0 6px;
    background: #f8f9fa;
    color: #6c757d;
}

.nice-main .toolbar-search input {
    height: 38px;
    min-width: 190px;
    border: 1px solid #ced4da;
    border-radius: 0;
    padding: 0 12px;
    outline: 0;
}

.nice-main .toolbar-search input:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .12);
}

.nice-main .toolbar-search button {
    min-height: 38px;
    border: 1px solid #ced4da;
    border-left: 0;
    border-radius: 0 6px 6px 0;
    padding: 0 12px;
    background: #fff;
    color: #6c757d;
    font-weight: 600;
}

.nice-main .table,
.nice-main .nice-table {
    width: 100%;
    margin-bottom: 0;
    color: #59667e;
    font-size: 14px;
    vertical-align: middle;
    border-collapse: collapse;
}

.nice-main .table thead,
.nice-main .nice-table thead {
    background: #f8f9fa;
}

.nice-main .table th,
.nice-main .nice-table th {
    background: #f8f9fa;
    color: #4f5d75;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
    border-bottom: 1px solid #dee2e6;
    padding: 12px;
}

.nice-main .table td,
.nice-main .nice-table td {
    color: #59667e;
    font-size: 14px;
    padding: 12px;
    border-bottom: 1px solid #edf1f7;
}

.nice-main .table tbody tr:hover,
.nice-main .nice-table tbody tr:hover {
    background: #f8fbff;
}

.nice-main .table tbody tr:last-child td,
.nice-main .nice-table tbody tr:last-child td {
    border-bottom: 0;
}

.nice-main .directory-table td:first-child,
.nice-main .directory-table th:first-child {
    width: 50px;
}

.nice-main .directory-table strong {
    color: #25375f;
}

.nice-main .directory-table small {
    display: block;
    color: var(--nice-muted);
}

.nice-main .row-actions {
    white-space: nowrap;
}

.nice-main .row-actions i,
.nice-main .btn-group-sm .btn,
.nice-main .btn-sm {
    vertical-align: middle;
}

.nice-main .btn {
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
}

.nice-main .btn-sm,
.nice-main .btn-group-sm > .btn {
    min-height: 31px;
    padding: .25rem .5rem;
    font-size: 13px;
}

.nice-main .btn-info {
    background-color: #0dcaf0;
    border-color: #0dcaf0;
}

.nice-main .btn-outline-primary {
    border-color: #0d6efd;
    color: #0d6efd;
}

.nice-action,
.modal-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    border: 1px solid #0d6efd;
    border-radius: 6px;
    padding: 7px 14px;
    background: #0d6efd;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}

.outline-btn,
.modal-cancel,
.danger-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    padding: 7px 14px;
    background: #fff;
    color: #59667e;
    font-size: 14px;
    font-weight: 600;
}

.danger-outline {
    border-color: #dc3545;
    color: #dc3545;
}

.nice-action:hover,
.modal-submit:hover {
    background: #0b5ed7;
    border-color: #0a58ca;
    color: #fff;
}

.outline-btn:hover,
.modal-cancel:hover {
    background: #f8f9fa;
    color: #25375f;
}

.nice-main .modal-dialog {
    max-width: min(900px, calc(100vw - 32px));
}

.nice-main .modal-content {
    border: 0;
    border-radius: 8px;
    box-shadow: 0 18px 50px rgba(37, 55, 95, .18);
    overflow: hidden;
}

.nice-main .modal-header {
    align-items: center;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #dee2e6;
}

.nice-main .modal-title,
.nice-main .modal-header h2,
.nice-main .modal-header h5 {
    margin: 0;
    color: var(--nice-blue-dark);
    font-size: 18px;
    font-weight: 700;
}

.nice-main .modal-body {
    padding: 1.25rem;
}

.nice-main .modal-footer {
    gap: 8px;
    padding: 1rem 1.25rem;
    border-top: 1px solid #dee2e6;
}

.nice-main .add-user-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.nice-main .add-user-grid label {
    display: block;
    color: #25375f;
    font-size: 14px;
    font-weight: 600;
}

.nice-main .add-user-grid .wide {
    grid-column: 1 / -1;
}

.nice-main .branch-form-grid .wide {
    grid-column: auto;
}

.nice-main .branch-form-grid .modal-check.wide {
    grid-column: 1 / -1;
}

.nice-main .add-user-grid input,
.nice-main .add-user-grid select,
.nice-main .add-user-grid textarea,
.nice-main .form-control,
.nice-main .form-select,
.nice-main textarea.form-control {
    min-height: 38px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    padding: .375rem .75rem;
    background-color: #fff;
    color: #212529;
    font-size: 14px;
    font-weight: 400;
}

.nice-main textarea.form-control {
    min-height: 84px;
}

.nice-main .form-control::placeholder,
.nice-main .form-select::placeholder {
    color: #6c757d;
    opacity: 1;
}

.nice-main .add-user-grid input,
.nice-main .add-user-grid select,
.nice-main .add-user-grid textarea {
    display: block;
    width: 100%;
    margin-top: .35rem;
}

.nice-main .add-user-grid input:focus,
.nice-main .add-user-grid select:focus,
.nice-main .add-user-grid textarea:focus,
.nice-main .form-control:focus,
.nice-main .form-select:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .12);
    outline: 0;
}

.nice-main .modal-check {
    display: flex !important;
    align-items: center;
    gap: 10px;
}

.nice-main .modal-check input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.nice-main .table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 1rem;
    color: var(--nice-muted);
    font-size: 14px;
}

.nice-main .pager {
    display: flex;
    gap: 4px;
}

.nice-main .pager button {
    min-width: 34px;
    height: 34px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: #fff;
    color: #59667e;
}

.nice-main .pager .active {
    background: #0d6efd;
    border-color: #0d6efd;
    color: #fff;
}

.nice-main .state-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border-radius: 50%;
    background: #198754;
}

.nice-main .state-dot.inactive,
.nice-main .state-dot.cancelled {
    background: #dc3545;
}

.nice-main .state-dot.pending {
    background: #ffc107;
}

@media (max-width: 768px) {
    .nice-main .page-hero,
    .nice-main .settings-panel-head,
    .nice-main .pagetitle,
    .nice-main .tabs-toolbar,
    .nice-main .table-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .nice-main .add-user-grid {
        grid-template-columns: 1fr;
    }

    .nice-main .toolbar-search {
        width: 100%;
    }
}

.menu-link em,
.submenu-link em.menu-badge {
    background: #dc3545;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 1px 7px;
    border-radius: 10px;
    margin-left: auto;
    font-style: normal;
    line-height: 1.6;
}

.submenu-link {
    display: flex;
    align-items: center;
    gap: 6px;
}

.submenu-link .chevron {
    margin-left: auto;
}

.header-center {
    flex: 1;
    display: flex;
    justify-content: center;
}

.branch-indicator {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #f5f8ff;
    border: 1px solid #dde6ff;
    border-radius: 12px;
    padding: 8px 20px;
    min-width: 340px;
}

.branch-indicator-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: #012970;
    color: #fff;
    border-radius: 10px;
    font-size: 16px;
    flex-shrink: 0;
}

.branch-indicator-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.branch-indicator-text small {
    color: #7c8aa5;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.branch-indicator-text strong {
    color: #012970;
    font-size: 15px;
}

.branch-indicator-change {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid #c7d4ff;
    border-radius: 8px;
    color: #012970;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease;
}

.branch-indicator-change:hover {
    background: #012970;
    color: #fff;
}

@media (max-width: 900px) {
    .branch-indicator {
        min-width: 0;
        width: 100%;
    }
    .branch-indicator-text small {
        display: none;
    }
}

.active-branch-change {
    margin-left: 6px;
    padding-left: 8px;
    border-left: 1px solid #d6e0ff;
    color: #012970;
    font-weight: 700;
    text-decoration: none;
}
.active-branch-change:hover {
    text-decoration: underline;
}

/* Keep DataTables visually aligned with Fleet Master Bootstrap tables. */
.nice-main table[data-datatable] {
    width: 100% !important;
    margin-bottom: 0;
    color: #59667e;
    font-size: 14px;
    border-collapse: collapse !important;
    vertical-align: middle;
}

.nice-main table[data-datatable] thead th,
.nice-main table[data-datatable] th {
    background-color: #f8f9fa;
    color: #4f5d75;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
    border-bottom: 1px solid #dee2e6;
    padding: 12px;
}

.nice-main table[data-datatable] td {
    color: #59667e;
    font-size: 14px;
    border-bottom: 1px solid #edf1f7;
    padding: 12px;
}

.nice-main .dataTables_wrapper,
.nice-main .dt-container {
    color: #59667e;
    font-size: 14px;
}

.nice-main .dataTables_length select,
.nice-main .dataTables_filter input,
.nice-main .dt-length select,
.nice-main .dt-search input {
    min-height: 38px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    padding: .375rem .75rem;
    color: #212529;
    font-size: 14px;
}

.nice-main .dataTables_paginate .paginate_button,
.nice-main .dt-paging .dt-paging-button {
    border-radius: 6px;
}

.settings-shell {
    align-items: flex-start; /* prevents the sidebar from stretching to match panel height */
}

.settings-sidebar {
    position: sticky;
    top: 20px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
}
