/* ================================================================
   mint-theme.css  –  MintPortal Custom Theme
   Primary colour: #1F3C78  (navy blue)
   ================================================================ */

/* ── CSS Variables ────────────────────────────────────────── */
:root {
    --mint-primary:    #1F3C78;
    --mint-primary-dk: #162c5a;
    --mint-primary-lt: #EBF4FF;
    --mint-success:    #1a7f4b;
    --mint-amber:      #92400e;
    --mint-amber-bg:   #fffbeb;
    --mint-green-bg:   #f0fdf4;
    --mint-blue-bg:    #eff6ff;
}

/* ── Body / Layout ────────────────────────────────────────── */
body {
    background: #f4f6fb;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    font-size: 0.93rem;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ── Navbar ───────────────────────────────────────────────── */
.mint-navbar {
    background: var(--mint-primary) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.mint-navbar .navbar-brand { font-size: 1.15rem; letter-spacing: .02em; }
.mint-navbar .nav-link      { color: rgba(255,255,255,.85) !important; transition: color .15s; padding: .45rem .75rem; }
.mint-navbar .nav-link:hover { color: #fff !important; }
.mint-navbar .dropdown-menu  { border: none; box-shadow: 0 4px 20px rgba(0,0,0,.12); border-radius: .5rem; }

/* ── Primary button ───────────────────────────────────────── */
.mint-btn {
    background: var(--mint-primary);
    color: #fff;
    border: none;
    font-weight: 600;
    letter-spacing: .01em;
    transition: background .2s;
}
.mint-btn:hover, .mint-btn:focus { background: var(--mint-primary-dk); color: #fff; }
.mint-btn:disabled { background: #7a95c0; }

/* ── Card header ──────────────────────────────────────────── */
.mint-card-header {
    background: var(--mint-primary);
    color: #fff;
    font-weight: 600;
    font-size: .92rem;
    padding: .6rem 1rem;
}

/* ── Footer ───────────────────────────────────────────────── */
.footer {
    font-size: .82rem;
    padding: .4rem 1.5rem;
}

/* ── Login page ───────────────────────────────────────────── */
.login-bg {
    background: linear-gradient(135deg, #1F3C78 0%, #2d5aa0 50%, #1a2e5a 100%);
}
.login-card {
    border-radius: .85rem;
    overflow: hidden;
}
.login-card .card-header {
    background: var(--mint-primary);
}

/* ── Dashboard stat cards ─────────────────────────────────── */
.stat-card { transition: transform .15s, box-shadow .15s; border-radius: .6rem; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.1) !important; }
.stat-icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; }

/* ── Tables ───────────────────────────────────────────────── */
.table-sm td, .table-sm th { vertical-align: middle; }

/* ── XIRR calculator ──────────────────────────────────────── */
.xirr-thead th {
    background: var(--mint-primary);
    color: #fff;
    font-weight: 600;
    font-size: .82rem;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}
.xirr-table { font-size: .83rem; }
.xirr-table tbody tr:hover td { background: #f0f4ff !important; }

/* Nature badges */
.badge.nature-opbal    { background: var(--mint-amber-bg); color: var(--mint-amber);  border: 1px solid #fcd34d; font-weight: 600; }
.badge.nature-currval  { background: var(--mint-green-bg); color: var(--mint-success); border: 1px solid #86efac; font-weight: 600; }
.badge.nature-cashflow { background: var(--mint-blue-bg);  color: var(--mint-primary); border: 1px solid #93c5fd; font-weight: 600; }

/* Person search dropdown */
.person-dropdown {
    position: absolute;
    z-index: 9999;
    max-height: 260px;
    overflow-y: auto;
    width: 100%;
    top: 100%;
    left: 0;
    margin-top: 2px;
}
.pd-item {
    padding: .4rem .85rem;
    cursor: pointer;
    font-size: .88rem;
    transition: background .1s;
}
.pd-item:hover, .pd-item.active { background: var(--mint-primary-lt); color: var(--mint-primary); }
.pd-item mark { background: #fef08a; padding: 0; border-radius: 2px; }
.pd-more {
    padding: .35rem .85rem;
    font-size: .8rem;
    color: #888;
    background: #f8f9fa;
    border-top: 1px solid #e5e7eb;
}

/* Person search wrapper needs relative */
#txtPersonSearch {
    position: relative;
}
.input-group {
    position: relative;
}
.input-group #personDropdown {
    left: 0;
    right: 0;
}

/* ── Permission matrix ────────────────────────────────────── */
.perm-table th { white-space: nowrap; font-size: .8rem; }
.perm-table td { font-size: .82rem; }
.perm-table .form-check-input { cursor: pointer; width: 1.05em; height: 1.05em; }

/* ── Breadcrumb ───────────────────────────────────────────── */
.breadcrumb { font-size: .82rem; margin-bottom: 0; }
.breadcrumb-item + .breadcrumb-item::before { color: #adb5bd; }

/* ── Misc ─────────────────────────────────────────────────── */
.font-monospace { font-family: 'Courier New', monospace; }
.text-truncate  { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Responsive tweaks ────────────────────────────────────── */
@media (max-width: 768px) {
    main { padding: .75rem !important; }
    .xirr-table { font-size: .75rem; }
    .display-6 { font-size: 1.5rem !important; }
}
