:root {
    --ms-coral: #e06060;
    --ms-coral-dark: #c94a4a;
    --ms-coral-light: #fbecec;
    --ms-ink: #2b2b35;
    --ms-slate: #4a4a58;
    --ms-bg: #f6f4f2;
    --ms-border: #e8e4e0;
    --ms-sidebar: #241f26;
    --ms-sidebar-light: #2e2832;
}

body {
    background: var(--ms-bg);
    color: var(--ms-ink);
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.text-ms { color: var(--ms-coral) !important; }
.bg-ms { background-color: var(--ms-coral) !important; }
.btn-ms {
    background-color: var(--ms-coral);
    border-color: var(--ms-coral);
    color: #fff;
}
.btn-ms:hover, .btn-ms:focus {
    background-color: var(--ms-coral-dark);
    border-color: var(--ms-coral-dark);
    color: #fff;
}
.btn-outline-ms {
    border-color: var(--ms-coral);
    color: var(--ms-coral);
}
.btn-outline-ms:hover {
    background-color: var(--ms-coral);
    border-color: var(--ms-coral);
    color: #fff;
}
.link-ms { color: var(--ms-coral); text-decoration: none; }
.link-ms:hover { color: var(--ms-coral-dark); text-decoration: underline; }

.card { border: 1px solid var(--ms-border); border-radius: .9rem; box-shadow: 0 1px 2px rgba(43,43,53,.04); }
.card-header { background: #fff; border-bottom: 1px solid var(--ms-border); border-radius: .9rem .9rem 0 0 !important; }
.stat-card { transition: transform .12s ease, box-shadow .12s ease; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(43,43,53,.08); }
.stat-value { font-size: 1.6rem; font-weight: 700; color: var(--ms-ink); }
.stat-label { font-size: .8rem; color: var(--ms-slate); text-transform: uppercase; letter-spacing: .04em; }

.table thead th {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ms-slate);
    border-bottom: 2px solid var(--ms-border);
    white-space: nowrap;
}
.table td { font-size: .875rem; vertical-align: middle; }
.table-hover tbody tr:hover { background: #fffaf7; }

.form-label { font-size: .85rem; font-weight: 600; color: var(--ms-slate); }
.form-control, .form-select {
    border-color: var(--ms-border);
    border-radius: .55rem;
}
.form-control:focus, .form-select:focus {
    border-color: var(--ms-coral);
    box-shadow: 0 0 0 .2rem rgba(224, 96, 96, .12);
}

.sidebar {
    background: var(--ms-sidebar);
    min-height: 100vh;
    position: sticky;
    top: 0;
}
.sidebar .nav-link {
    color: #b8b0c0;
    border-radius: .55rem;
    padding: .6rem .9rem;
    font-size: .9rem;
    display: flex;
    align-items: center;
    gap: .6rem;
}
.sidebar .nav-link:hover { background: var(--ms-sidebar-light); color: #fff; }
.sidebar .nav-link.active {
    background: var(--ms-coral);
    color: #fff;
}
.sidebar .nav-link.active:hover { background: var(--ms-coral-dark); }
.sidebar-brand {
    display: flex;
    align-items: center;
    padding: 1.1rem 1rem .9rem;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.sidebar-brand img { max-height: 42px; max-width: 100%; }

.avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .85rem;
    background: var(--ms-coral);
    color: #fff;
}

.navbar-app {
    background: #fff;
    border-bottom: 1px solid var(--ms-border);
}

.badge-soft { background: var(--ms-coral-light); color: var(--ms-coral-dark); font-weight: 600; }

.install-card { max-width: 560px; margin: 6vh auto; }
.step-dot {
    width: 30px; height: 30px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #eee; color: #888; font-weight: 700; font-size: .85rem;
}
.step-dot.active { background: var(--ms-coral); color: #fff; }
.step-dot.done { background: #28a745; color: #fff; }

.upload-zone {
    border: 2px dashed var(--ms-border);
    border-radius: .9rem;
    padding: 2.4rem 1rem;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.upload-zone:hover, .upload-zone.dragover { border-color: var(--ms-coral); background: #fffaf7; }

.help-text { font-size: .8rem; color: var(--ms-slate); }

.pagination { --bs-pagination-color: var(--ms-coral); --bs-pagination-active-bg: var(--ms-coral); --bs-pagination-active-border-color: var(--ms-coral); }