/* KRA FA 360 — base styles */
:root {
    --app-primary: #0d6efd;
    --app-primary-dark: #0a58ca;
    --app-bg: #f5f7fb;
}

body { background: var(--app-bg); }

/* Login */
.bg-login {
    min-height: 100vh;
    background: linear-gradient(135deg, #0a58ca 0%, #4dabf7 100%);
    display: flex; align-items: center; justify-content: center;
}
.login-wrap { width: 100%; max-width: 420px; padding: 1rem; }
.login-card { background:#fff; padding: 2.25rem 2rem; border-radius: 12px; }
.login-logo {
    width: 64px; height: 64px; border-radius: 16px;
    background: linear-gradient(135deg, var(--app-primary), #4dabf7);
    color: #fff; font-size: 28px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
}

/* Top nav */
.app-navbar {
    background: linear-gradient(90deg, #0a3a87, #0d6efd);
    box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.brand-logo {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 8px;
    background: rgba(255,255,255,.15); font-weight: 700; margin-right: .35rem;
}
.app-navbar .nav-link { font-size: .94rem; }
.app-navbar .nav-link.active, .app-navbar .nav-link:hover { color: #fff !important; }

/* Cards */
.kpi-card {
    border: 0; border-radius: 12px; box-shadow: 0 1px 3px rgba(0,0,0,.05);
    transition: transform .12s ease;
}
.kpi-card:hover { transform: translateY(-2px); }
.kpi-card .kpi-icon {
    width: 48px; height: 48px; border-radius: 12px; display: inline-flex;
    align-items: center; justify-content: center; font-size: 1.4rem; color: #fff;
}
.kpi-clean    .kpi-icon { background: #198754; }
.kpi-excess   .kpi-icon { background: #fd7e14; }
.kpi-shortage .kpi-icon { background: #dc3545; }
.kpi-multi    .kpi-icon { background: #6f42c1; }
.kpi-card .kpi-num { font-size: 1.9rem; font-weight: 700; }
.kpi-card .kpi-label { color: #6c757d; font-size: .85rem; }

/* Reconciliation workspace */
.recon-pane {
    background: #fff; border-radius: 12px; padding: 1rem;
    height: 70vh; overflow-y: auto;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.recon-pane h5 { position: sticky; top: 0; background: #fff; padding-bottom: .5rem; z-index: 5; }
.recon-item {
    border: 1px solid #e3e6ed; border-radius: 8px; padding: .65rem .8rem;
    margin-bottom: .5rem; cursor: grab; background: #fff;
    transition: border-color .12s, transform .12s;
}
.recon-item:hover  { border-color: var(--app-primary); }
.recon-item.dragging { opacity: .55; transform: scale(.98); }
.recon-item.selected { border-color: var(--app-primary); background: #eef5ff; }
.recon-drop {
    border: 2px dashed #adb5bd; border-radius: 10px; padding: 1rem;
    text-align: center; color: #6c757d; min-height: 80px;
}
.recon-drop.over { border-color: var(--app-primary); background: #eef5ff; color: var(--app-primary); }

/* Photo gallery */
.photo-thumb {
    width: 110px; height: 110px; object-fit: cover; border-radius: 8px;
    border: 1px solid #dee2e6; margin: 4px;
}

/* Tables */
.table thead th { font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; color: #6c757d; background: #f8f9fa; }
.table tbody td { vertical-align: middle; }

/* Mobile tweaks */
@media (max-width: 768px) {
    .recon-pane { height: 50vh; }
    .kpi-card .kpi-num { font-size: 1.5rem; }
}
