/* Úvěrář – pastelová písková paleta, oldschool look, čtvercové rohy. */

:root {
    --uv-bg:        #F5EFE6;  /* hlavní pozadí, krémově písková */
    --uv-panel:     #FAF8F3;  /* karty, panely */
    --uv-border:    #D4C5A9;  /* světlý tan */
    --uv-text:      #2C2620;  /* tmavě hnědá / téměř černá */
    --uv-muted:     #6B5B47;  /* tlumený text, popisky */
    --uv-primary:   #8B6F47;  /* hlavní akcent (tlačítka, odkazy) */
    --uv-primary-d: #6E5736;  /* hover */
    --uv-navbar:    #6B5B47;  /* tmavá písková pro navbar */
    --uv-navbar-t:  #F5EFE6;  /* text v navbaru */
    --uv-success:   #6B7F4F;  /* tlumená olivová */
    --uv-danger:    #9B5959;  /* tlumená cihlová */
    --uv-warning:   #B59842;  /* tlumená okrová */
    --uv-info:      #5C7A8F;  /* tlumená modro-šedá */
}

/* --- žádné kulaté rohy nikde --- */
*, *::before, *::after {
    border-radius: 0 !important;
}

html, body {
    background: var(--uv-bg);
    color: var(--uv-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Liberation Sans", Arial, sans-serif;
    font-size: 14px;
}

/* --- karty / panely --- */
.uv-panel {
    background: var(--uv-panel);
    border: 1px solid var(--uv-border);
    padding: 1.25rem;
    margin-bottom: 1rem;
}
.uv-panel-header {
    background: var(--uv-border);
    color: var(--uv-text);
    padding: 0.6rem 0.9rem;
    margin: -1.25rem -1.25rem 1rem -1.25rem;
    border-bottom: 1px solid var(--uv-primary-d);
    font-weight: 600;
}

/* --- formuláře --- */
.form-control, .form-select {
    background: #fff;
    border: 1px solid var(--uv-border);
    color: var(--uv-text);
}
.form-control:focus, .form-select:focus {
    border-color: var(--uv-primary);
    box-shadow: 0 0 0 0.15rem rgba(139, 111, 71, 0.2);
    background: #fff;
}
.form-label {
    color: var(--uv-muted);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

/* --- tlačítka --- */
.btn {
    border-radius: 0 !important;
    padding: 0.4rem 0.9rem;
    font-weight: 500;
    border-width: 1px;
}
.btn-primary {
    background: var(--uv-primary);
    border-color: var(--uv-primary-d);
    color: #fff;
}
.btn-primary:hover, .btn-primary:focus {
    background: var(--uv-primary-d);
    border-color: var(--uv-primary-d);
    color: #fff;
}
.btn-secondary {
    background: var(--uv-border);
    border-color: var(--uv-muted);
    color: var(--uv-text);
}
.btn-secondary:hover, .btn-secondary:focus {
    background: var(--uv-muted);
    color: #fff;
}
.btn-danger {
    background: var(--uv-danger);
    border-color: #784747;
    color: #fff;
}
.btn-danger:hover { background: #784747; color: #fff; }

/* --- odkazy --- */
a {
    color: var(--uv-primary);
    text-decoration: underline;
}
a:hover {
    color: var(--uv-primary-d);
}

/* --- tabulka --- */
.table {
    background: var(--uv-panel);
    color: var(--uv-text);
    border: 1px solid var(--uv-border);
}
.table thead th {
    background: var(--uv-border);
    color: var(--uv-text);
    border-bottom: 2px solid var(--uv-primary-d);
    font-weight: 600;
}
.table tbody tr:nth-child(even) {
    background: #F0E9DD;
}
.table td, .table th {
    border-color: var(--uv-border);
    vertical-align: middle;
}

/* --- alerty / flash messages --- */
.alert {
    border: 1px solid;
    padding: 0.6rem 0.9rem;
    margin-bottom: 1rem;
}
.alert-success { background: #E3E8D7; color: #3D4A28; border-color: var(--uv-success); }
.alert-danger  { background: #F0DADA; color: #5B2E2E; border-color: var(--uv-danger); }
.alert-warning { background: #F4ECCB; color: #6B5821; border-color: var(--uv-warning); }
.alert-info    { background: #DCE5EC; color: #324655; border-color: var(--uv-info); }

/* --- badge pro roli --- */
.uv-role {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid;
}
.uv-role-superadmin { background: var(--uv-danger); color: #fff; border-color: #784747; }
.uv-role-admin { background: var(--uv-primary); color: #fff; border-color: var(--uv-primary-d); }
.uv-role-user  { background: var(--uv-border); color: var(--uv-text); border-color: var(--uv-muted); }

/* --- login obrazovka --- */
.uv-login-wrap {
    max-width: 380px;
    margin: 4rem auto;
}
.uv-login-wrap h1 {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 1.5rem;
    color: var(--uv-muted);
}

/* --- search box s autocomplete --- */
.uv-search-wrap {
    position: relative;
}
.uv-search-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    background: #fff;
    border: 1px solid var(--uv-border);
    border-top: none;
    max-height: 320px;
    overflow-y: auto;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.uv-search-item {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #EFE8DA;
    cursor: pointer;
}
.uv-search-item:last-child { border-bottom: none; }
.uv-search-item.uv-active,
.uv-search-item:hover {
    background: var(--uv-border);
}
.uv-search-label { font-weight: 500; }
.uv-search-sub { font-size: 0.8rem; }

/* --- mobil: tap-targets a skrývání méně důležitých sloupců --- */
@media (max-width: 575.98px) {
    .btn-sm {
        padding: 0.45rem 0.7rem;
        min-height: 36px;
        font-size: 0.9rem;
    }
    .uv-panel {
        padding: 0.75rem;
    }
    .uv-panel-header {
        margin: -0.75rem -0.75rem 0.75rem -0.75rem;
        padding: 0.5rem 0.75rem;
    }
    .table {
        font-size: 0.85rem;
    }
    .table td, .table th {
        padding: 0.4rem 0.4rem;
    }
}

/* --- zprávy: badge zdroje (DS / @) --- */
.uv-source {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    border: 1px solid;
    line-height: 1.2;
    margin-right: 0.3rem;
}
.uv-source-isds { background: #DCE5EC; color: #324655; border-color: var(--uv-info); }
.uv-source-email { background: #E3E8D7; color: #3D4A28; border-color: var(--uv-success); }

.uv-direction {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid var(--uv-border);
    background: #fff;
}

/* --- univerzální barevné stav-badge (sjednocené pro celou app) --- */
.uv-badge {
    display: inline-block;
    padding: 0.18rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    border: 1px solid;
    white-space: nowrap;
}
.uv-badge-success { background: #E3E8D7; color: #3D4A28; border-color: var(--uv-success); }
.uv-badge-info    { background: #DCE5EC; color: #324655; border-color: var(--uv-info); }
.uv-badge-warning { background: #F4ECCB; color: #6B5821; border-color: var(--uv-warning); }
.uv-badge-danger  { background: #F0DADA; color: #5B2E2E; border-color: var(--uv-danger); }
.uv-badge-muted   { background: var(--uv-border); color: var(--uv-text); border-color: var(--uv-muted); }
.uv-badge-primary { background: var(--uv-primary); color: #fff; border-color: var(--uv-primary-d); }

/* Barevné varianty Bootstrap .btn pro situace, kdy potřebujeme stejnou velikost
   jako .btn-sm, ale nejde o klikatelnou akci (např. „aktivní" stav). */
.btn.uv-btn-success { background: #E3E8D7; color: #3D4A28; border-color: var(--uv-success); cursor: default; }
.btn.uv-btn-success:hover { background: #E3E8D7; color: #3D4A28; border-color: var(--uv-success); }
.btn.uv-btn-warning { background: #F4ECCB; color: #6B5821; border-color: var(--uv-warning); cursor: default; }
.btn.uv-btn-warning:hover { background: #F4ECCB; color: #6B5821; border-color: var(--uv-warning); }

/* --- úkoly (stavy) --- */
.uv-task-overdue {
    background: #F6E3E3;
    padding: 0.5rem;
    margin-left: -0.5rem;
    margin-right: -0.5rem;
}
.uv-task-done {
    opacity: 0.7;
}

/* --- pomocné --- */
.text-muted-uv { color: var(--uv-muted) !important; }
hr { border-color: var(--uv-border); }

/* --- levý svislý panel (sidebar) – nahrazuje horní navbar --- */
.uv-shell {
    display: flex;
    align-items: stretch;
    min-height: 100vh;
}
.uv-sidebar {
    flex: 0 0 240px;
    width: 240px;
    background: var(--uv-navbar);
    border-right: 2px solid var(--uv-primary-d);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    padding: 0.5rem 0 1rem;
}
.uv-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1.5rem 2rem;
}
.uv-sidebar-brand {
    color: var(--uv-navbar-t);
    font-weight: 700;
    letter-spacing: 0.5px;
    font-size: 1.2rem;
    text-decoration: none;
    display: block;
    padding: 0.5rem 1rem 0.75rem;
}
.uv-sidebar-brand:hover { color: #fff; }
.uv-sidebar-search { padding: 0 0.75rem 0.6rem; }

/* Výrazný blok přepínače aktivního úvěráře pod logem */
.uv-sidebar-lender {
    margin: 0 0.75rem 0.6rem;
    padding: 0.5rem 0.6rem;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid var(--uv-primary-d);
    border-radius: 4px;
}
.uv-sidebar-lender-label {
    color: var(--uv-navbar-t);
    opacity: 0.65;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.15rem;
}
.uv-sidebar-lender-name {
    color: var(--uv-navbar-t);
    font-weight: 700;
    font-size: 0.98rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.uv-sidebar-lender-name:hover { color: #fff; text-decoration: none; }
.uv-sidebar-lender .uv-sidebar-sub { margin-top: 0.35rem; }
.uv-sidebar-lender .uv-sidebar-sub .nav-link { padding-left: 0.5rem; }

/* Jemné nadpisy sekcí + oddělovač */
.uv-sidebar-heading {
    color: var(--uv-navbar-t);
    opacity: 0.55;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.35rem 1rem 0.2rem;
    margin-top: 0.45rem;
    border-top: 1px solid var(--uv-primary-d);
}
.uv-sidebar-heading:first-child { border-top: 0; margin-top: 0; }

.uv-sidebar-nav { flex: 1 1 auto; }
.uv-sidebar .nav-link {
    color: var(--uv-navbar-t);
    padding: 0.45rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.uv-sidebar .nav-link:hover {
    color: #fff;
    background: rgba(0, 0, 0, 0.15);
    text-decoration: none;
}

/* Zvýraznění stránky, na které uživatel právě je. */
.uv-sidebar .nav-link.active {
    background: rgba(0, 0, 0, 0.28);
    color: #fff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #fff;
}
.uv-sidebar-sub .nav-link {
    padding-left: 1.9rem;
    font-size: 0.92em;
}
.uv-sidebar-bottom {
    margin-top: auto;
    border-top: 1px solid var(--uv-primary-d);
    padding-top: 0.4rem;
}
.uv-sidebar-user {
    color: var(--uv-navbar-t);
    opacity: 0.7;
    font-size: 0.85em;
    padding: 0.45rem 1rem 0.15rem;
}
.uv-sidebar .btn-link {
    color: var(--uv-navbar-t);
    text-decoration: none;
}
.uv-sidebar .btn-link:hover { color: #fff; }

/* Užší obrazovky: menu se schová do offcanvasu, obsah začíná nahoře */
@media (max-width: 991.98px) {
    .uv-shell { flex-direction: column; }
    /* uverar.css se načítá po bootstrapu, takže .uv-sidebar { position: sticky }
       přebíjí .offcanvas-lg. Panel proto musíme na malé obrazovce sami přepnout
       na fixed; transform a visibility nechte Bootstrapu, jinak se nezasune. */
    .uv-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        flex: none;
        width: 280px;
        max-width: 100%;
        height: 100%;
        overflow-y: auto;
        border-right: 2px solid var(--uv-primary-d);
    }
    .uv-content { padding: 1rem; }
}

/* --- nástěnka: skládané dlaždice (masonry) bez prázdných děr ---
   Panely různé výšky se srovnají těsně vedle sebe. Na úzké obrazovce
   (sidebar je nad obsahem) automaticky jeden sloupec. */
.uv-dash-grid { column-gap: 1rem; }
.uv-dash-grid > .uv-panel {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
}
@media (min-width: 992px) {
    .uv-dash-grid { column-count: 2; }

    /* Bootstrap zprůhledňuje .offcanvas-lg na širokých obrazovkách přes
       !important. Boční menu tím přišlo o hnědé pozadí a světlý text na něm
       zůstal neviditelný. Vracíme pozadí zpět – taky přes !important, jinak
       se neprosadí. */
    .uv-sidebar.offcanvas-lg { background-color: var(--uv-navbar) !important; }
}

/* --- Časová osa úvěru --- */
:root {
    --uv-cat-money:    var(--uv-success);   /* peníze      */
    --uv-cat-contact:  var(--uv-info);      /* komunikace  */
    --uv-cat-docs:     var(--uv-primary);   /* dokumenty   */
    --uv-cat-legal:    var(--uv-danger);    /* právo       */
    --uv-cat-work:     var(--uv-warning);   /* práce       */
    --uv-cat-property: #7A6B8F;             /* nemovitosti */
    --uv-cat-changes:  #8A8578;             /* změny       */
}

/* Barva kategorie se předá proměnnou; atribut data-cat používá jen časová osa. */
[data-cat="money"]    { --uv-cat: var(--uv-cat-money); }
[data-cat="contact"]  { --uv-cat: var(--uv-cat-contact); }
[data-cat="docs"]     { --uv-cat: var(--uv-cat-docs); }
[data-cat="legal"]    { --uv-cat: var(--uv-cat-legal); }
[data-cat="property"] { --uv-cat: var(--uv-cat-property); }
[data-cat="work"]     { --uv-cat: var(--uv-cat-work); }
[data-cat="changes"]  { --uv-cat: var(--uv-cat-changes); }
.uv-tl-item::before, .uv-tl-bar, .uv-tl-dot { background: var(--uv-cat, var(--uv-muted)); }

.uv-tl { position: relative; list-style: none; margin: 0; padding: 0 0 0 1.75rem; }
.uv-tl::before { content: ''; position: absolute; left: .55rem; top: 0; bottom: 0; width: 2px; background: var(--uv-border); }
.uv-tl-item { position: relative; padding: .5rem 0; border-bottom: 1px solid var(--uv-border);
              /* prohlížeč nevykresluje, co není vidět – drží stránku svižnou i u stovek událostí */
              content-visibility: auto; contain-intrinsic-size: auto 64px; }
.uv-tl-item::before { content: ''; position: absolute; left: -1.45rem; top: .8rem; width: .7rem; height: .7rem; }
.uv-tl-head { margin: 1.25rem 0 .5rem; font-weight: 700; color: var(--uv-muted); scroll-margin-top: 1rem; }
.uv-tl-date { color: var(--uv-muted); font-size: .8125rem; }
.uv-tl-title { font-weight: 600; }
@media (min-width: 576px) {
    .uv-tl-item { display: grid; grid-template-columns: 8.5rem 1fr; column-gap: .75rem; }
}
/* Bez tohohle se osa nevytiskne – content-visibility skryje vše mimo obrazovku. */
@media print { .uv-tl-item { content-visibility: visible; } }

/* Pruh let nad osou a legenda. */
.uv-tl-strip { padding: .75rem; background: var(--uv-panel); border: 1px solid var(--uv-border); }
.uv-tl-year {
    display: flex; flex-direction: column; gap: .25rem;
    padding: .35rem .5rem; border: 1px solid var(--uv-border);
    color: var(--uv-text); text-decoration: none; font-weight: 600; font-size: .875rem;
    background: var(--uv-panel);
}
.uv-tl-year:hover { border-color: var(--uv-primary); color: var(--uv-primary); }
.uv-tl-bars { height: .5rem; overflow: hidden; }
.uv-tl-bar { min-width: 2px; }
.uv-tl-dot { display: inline-block; width: .7rem; height: .7rem; margin-right: .3rem; vertical-align: baseline; }
/* --- Příprava šablony ze smlouvy --- */
.uv-tpl-paragraph {
    white-space: pre-wrap;
}
.uv-tpl-paragraph mark.uv-tpl-confirmed {
    background-color: #ffe066;
    padding: 0 0.1rem;
}
.uv-tpl-paragraph mark.uv-tpl-waiting {
    background-color: #d9d9d9;
    padding: 0 0.1rem;
}
.uv-tpl-paragraph.uv-tpl-focus {
    outline: 2px solid #5d4a36;
    outline-offset: 2px;
    background-color: #fdf6ec;
}

/* Cesta nad obsahem – drobná, ať nekonkuruje nadpisu stránky. */
.uv-content .breadcrumb { margin-bottom: 0.75rem; font-size: 0.9rem; }

/* --- Mapa aplikace (/help) --- */
.uv-mapa-schema-wrap { overflow-x: auto; margin-bottom: 1rem; }
.uv-mapa-schema { width: 100%; height: auto; min-width: 760px; }
.uv-mapa-schema .uv-node rect { fill: var(--uv-panel); stroke: var(--uv-border); stroke-width: 1.5; }
.uv-mapa-schema .uv-node text { fill: var(--uv-text); font-size: 13px; }
.uv-mapa-schema .uv-node:hover rect,
.uv-mapa-schema .uv-node:focus rect { fill: var(--uv-border); }
.uv-mapa-schema .uv-edge { stroke: var(--uv-primary); stroke-width: 1.5; fill: none; }
.uv-mapa-schema .uv-marker { fill: var(--uv-primary); }
.uv-mapa-uzel { scroll-margin-top: 1rem; }
.uv-mapa-uzel:target { outline: 2px solid var(--uv-primary); outline-offset: 2px; }

@media print {
    .uv-sidebar, .napoveda-nav, .uv-sidebar-search { display: none !important; }
    .uv-mapa-schema-wrap { overflow: visible; page-break-inside: avoid; }
    .uv-mapa-schema { min-width: 0; }
}
