:root {
    --km-primary: #3B66A8;
    --km-bg: #F4F7FA;
    --km-radius: 0.25rem;
    --km-success: #11C15B;
    --km-danger: #FF5252;
    --km-sidebar-expanded: 260px;
    --km-sidebar-collapsed: 80px;
    --km-btn-primary: #448bff;
    --km-table-alt-row: #f9fbfd;
}

body {
    font-family: "Noto Sans TC", "Microsoft JhengHei", sans-serif;
    background-color: var(--km-bg);
}

.card,
.card .card-block,
.form-control,
.btn,
.modal-content,
.navbar,
.pcoded-navbar,
.pcoded-item > li > a {
    border-radius: var(--km-radius);
}

.header-navbar,
.pcoded .pcoded-header {
    background: var(--km-primary);
}

.pcoded .pcoded-navbar {
    transition: all 0.3s ease;
    width: var(--km-sidebar-expanded);
}

/* Collapsed sidebar (80px) */
.pcoded[theme-layout="vertical"][vertical-nav-type="collapsed"] .pcoded-navbar {
    width: var(--km-sidebar-collapsed);
}

/* Table alternate row color */
.table-striped > tbody > tr:nth-of-type(even) {
    background-color: var(--km-table-alt-row);
}

/* Primary button color override */
.btn-primary,
.btn-primary:focus {
    background-color: var(--km-btn-primary);
    border-color: var(--km-btn-primary);
    color: #fff;
}

.btn-primary:hover {
    background-color: #2d74e6;
    border-color: #2d74e6;
}

/* Toast */
.km-toast-host {
    position: fixed;
    top: 20px;
    right: 45%;
    z-index: 2000;
}

.km-toast {
    min-width: 280px;
    max-width: 420px;
    color: #fff;
    border-radius: var(--km-radius);
    padding: 12px 14px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
    display: none;
}

.km-toast.km-toast-success {
    background: var(--km-success);
}

.km-toast.km-toast-danger {
    background: var(--km-danger);
}

/* Global confirm modal */
.km-confirm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: none;
    z-index: 1990;
}

.km-confirm-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2001;
    padding: 16px;
}

.km-confirm-modal .km-confirm-card {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: var(--km-radius);
    padding: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.km-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 14px;
}

.km-no-scroll {
    overflow: hidden;
}

/* Audit info footer block */
.km-audit-info {
    margin-top: 16px;
    border: 1px solid #dfe6ee;
    background: #fff;
    border-radius: var(--km-radius);
    padding: 12px;
}

.km-audit-info .km-audit-title {
    font-weight: 600;
    color: #4b6078;
    margin-bottom: 8px;
}

.km-audit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 8px 12px;
}

.km-audit-item label {
    display: block;
    font-size: 12px;
    color: #6f8093;
    margin-bottom: 2px;
}

.km-audit-item input {
    width: 100%;
    background: #f6f8fb;
}

@media (max-width: 768px) {
    .km-audit-grid {
        grid-template-columns: 1fr;
    }
}
