﻿/* NaturalCare Sklad – doplnky k SB Admin 2 (Bootstrap 4) */

body, .btn, .form-control, .dropdown-menu {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* značková zelená (NaturalCare) namiesto predvolenej modrej SB Admin 2 */
.bg-gradient-primary {
    background-color: #2f6f4f;
    background-image: linear-gradient(180deg, #2f6f4f 10%, #1d4a34 100%);
    background-size: cover;
}
.btn-primary { background-color: #2f6f4f; border-color: #2f6f4f; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background-color: #255a3f !important; border-color: #255a3f !important; }
.btn-outline-primary { color: #2f6f4f; border-color: #2f6f4f; }
.btn-outline-primary:hover { background-color: #2f6f4f; border-color: #2f6f4f; }
.text-primary { color: #2f6f4f !important; }
a { color: #2f6f4f; }
a:hover { color: #1d4a34; }
.border-left-primary { border-left: .25rem solid #2f6f4f !important; }
.page-item.active .page-link { background-color: #2f6f4f; border-color: #2f6f4f; }
.page-link { color: #2f6f4f; }
.form-control:focus { border-color: #5aa37f; box-shadow: 0 0 0 .2rem rgba(47,111,79,.2); }
.custom-control-input:checked ~ .custom-control-label::before { background-color: #2f6f4f; border-color: #2f6f4f; }

/* tabuľky */
.table th { white-space: nowrap; font-size: .8rem; text-transform: uppercase; letter-spacing: .02em; color: #6e707e; }
.table td { vertical-align: middle; }
.table-sm td, .table-sm th { padding: .45rem .6rem; }
.table a.sort { color: inherit; text-decoration: none; }
.table a.sort:hover { text-decoration: underline; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nowrap { white-space: nowrap; }
.mono { font-family: Consolas, "Courier New", monospace; }
.truncate { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-muted td { color: #a0a3b1; }
.row-expired td { background: #fdf2f2; }

/* expiračný semafor */
.exp-dot {
    display: inline-block; width: 14px; height: 14px; border-radius: 50%;
    vertical-align: -2px; border: 1px solid rgba(0,0,0,.18); flex: 0 0 auto;
}
.exp-dot.lg { width: 20px; height: 20px; }
.exp-dot.sm { width: 10px; height: 10px; vertical-align: 0; }
.exp-badge {
    display: inline-block; min-width: 1.9rem; padding: .12rem .5rem; border-radius: 10rem;
    font-size: .75rem; font-weight: 700; color: #fff; text-align: center; line-height: 1.35;
    text-shadow: 0 0 2px rgba(0,0,0,.35);
}
.exp-cell { white-space: nowrap; }
.exp-cell .exp-txt { margin-left: .35rem; font-size: .85rem; }
.exp-dots .exp-dot { margin-right: 2px; }
.legend-chip {
    display: inline-flex; align-items: center; gap: .35rem; margin: 0 .35rem .35rem 0;
    padding: .25rem .6rem; border-radius: 10rem; border: 1px solid #e3e6f0; background: #fff;
    font-size: .85rem; color: #5a5c69; text-decoration: none; cursor: pointer;
}
.legend-chip:hover { background: #f8f9fc; text-decoration: none; color: #3a3b45; }
.legend-chip.active { border-color: #2f6f4f; box-shadow: 0 0 0 2px rgba(47,111,79,.25); font-weight: 700; }

/* KPI karty */
.kpi .h3 { font-variant-numeric: tabular-nums; }

/* skenovanie */
.scan-input {
    font-size: 1.8rem; height: auto; padding: .9rem 1.1rem; letter-spacing: .04em;
    border: 2px solid #2f6f4f; border-radius: .6rem;
}
.scan-hint { font-size: .85rem; color: #858796; }
.scan-result-ok { animation: flashOk .9s ease-out; }
@keyframes flashOk { from { background: #d4edda; } to { background: transparent; } }
.batch-pick { cursor: pointer; }
.batch-pick:hover { background: #f1f7f4; }
.batch-pick.selected { background: #e3f1ea; outline: 2px solid #2f6f4f; }
.btn-xl { padding: .9rem 1.4rem; font-size: 1.15rem; }
.qty-input { font-size: 1.6rem; text-align: center; max-width: 9rem; }
.product-img { max-width: 120px; max-height: 120px; object-fit: contain; border-radius: .35rem; border: 1px solid #e3e6f0; background: #fff; }

/* filtre */
.filter-card .form-group { margin-bottom: .6rem; }
.filter-card label { font-size: .8rem; font-weight: 600; color: #6e707e; margin-bottom: .15rem; }
.filter-tag {
    display: inline-block; background: #e8f3ed; color: #1d4a34; border-radius: 10rem;
    padding: .15rem .6rem; font-size: .8rem; margin: 0 .3rem .3rem 0;
}

/* multiselect s vyhľadávaním (import) */
.ms { position: relative; }
.ms-btn { text-align: left; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-panel {
    position: absolute; z-index: 1050; left: 0; right: 0; background: #fff; border: 1px solid #d1d3e2;
    border-radius: .35rem; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); padding: .5rem; display: none; min-width: 260px;
}
.ms.open .ms-panel { display: block; }
.ms-list { max-height: 240px; overflow-y: auto; margin-top: .4rem; }
.ms-item { display: flex; align-items: center; padding: .15rem .25rem; font-size: .88rem; }
.ms-item label { margin: 0 0 0 .4rem; cursor: pointer; flex: 1; }
.ms-item .cnt { color: #858796; font-size: .78rem; }

/* logo */
.sidebar .brand-logo-link { height: auto; padding: .9rem .75rem; }
.brand-logo-plate { display: block; background: #fff; border-radius: .6rem; padding: .35rem .6rem; line-height: 0; }
.brand-logo { display: block; height: 64px; width: auto; max-width: 100%; }
.sidebar.toggled .brand-logo-plate { padding: .2rem .3rem; }
.sidebar.toggled .brand-logo { height: 36px; }
.login-logo { height: 110px; width: auto; max-width: 100%; }

/* prihlásenie */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #2f6f4f, #1d4a34); padding: 1rem; }
.login-card { width: 100%; max-width: 420px; border: 0; border-radius: .8rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.25); }

/* mobil / tablet */
@media (max-width: 767.98px) {
    .scan-input { font-size: 1.4rem; }
    .truncate { max-width: 180px; }
    .container-fluid { padding-left: .75rem; padding-right: .75rem; }
    h1.h3 { font-size: 1.35rem; }
}

.sticky-actions { position: sticky; bottom: 0; background: #fff; border-top: 1px solid #e3e6f0; padding: .6rem 0; z-index: 10; }
.cursor-pointer { cursor: pointer; }
.is-hidden { display: none !important; }
