/* ============================================================
   nastavitve-extra.css
   Dodatni razredi za izboljšano stran "Nastavitve".
   Uporablja iste CSS spremenljivke (--color-*, --radius-*, ...)
   kot obstoječi style.css, zato se vizualno ujema s preostankom strani.

   Vključi v <head> (v default.html), takoj za obstoječim style.css:
   <link rel="stylesheet" href="/static/css/nastavitve-extra.css">
   ============================================================ */

/* ------------------------------------------------------------
   Hitra navigacija po razdelkih (na vrhu strani "Nastavitve")
   ------------------------------------------------------------ */
.quick-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
    padding: 4px;
}

.quick-nav a {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13.5px;
    color: var(--color-ink-soft);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    padding: 7px 15px;
    border-radius: var(--radius-pill);
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.quick-nav a:hover {
    color: var(--color-primary-dark);
    border-color: var(--color-primary-pastel);
    background: var(--color-primary-tint);
}

/* ------------------------------------------------------------
   Orodna vrstica nad tabelami (iskanje, filtri, štetje)
   ------------------------------------------------------------ */
.table-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.table-toolbar .w3-input {
    max-width: 320px;
    margin-bottom: 0 !important;
}

.table-toolbar__count {
    font-size: 13.5px;
    color: var(--color-ink-soft);
    font-family: var(--font-display);
    font-weight: 600;
}

/* značka s številom poleg naslova razdelka (npr. "Delavnice 6") */
.section-card h1 .count-badge {
    display: inline-block;
    margin-left: 8px;
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary-dark);
    background: var(--color-primary-tint);
    padding: 2px 11px;
    border-radius: var(--radius-pill);
    vertical-align: middle;
}

/* ------------------------------------------------------------
   Razvrščanje tabele delavnic s klikom na glavo stolpca
   ------------------------------------------------------------ */
th.is-sortable {
    cursor: pointer;
    user-select: none;
}

th.is-sortable .sort-arrow {
    display: inline-block;
    margin-left: 6px;
    opacity: 0.5;
    font-size: 12px;
}

th.is-sortable.is-sorted-asc .sort-arrow,
th.is-sortable.is-sorted-desc .sort-arrow {
    opacity: 1;
}

/* ------------------------------------------------------------
   Prazno stanje (npr. ni še dodanih delavnic)
   ------------------------------------------------------------ */
.empty-state {
    text-align: center;
    padding: 26px 16px;
    color: var(--color-ink-soft);
    font-size: 15px;
    background: var(--color-bg);
    border: 1.5px dashed var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: 18px;
}

/* ------------------------------------------------------------
   Vrstica zasedenosti mest (na kartici "Zasičenost")
   ------------------------------------------------------------ */
.occupancy-bar {
    width: 100%;
    height: 10px;
    border-radius: var(--radius-pill);
    background: var(--color-neutral-tint);
    overflow: hidden;
    margin: 10px 0 4px;
}

.occupancy-bar__fill {
    height: 100%;
    border-radius: var(--radius-pill);
    /* raste s "transform: scaleX" ob nalaganju, ne s prehodom na "width"
       (širino postavi inline style v predlogi, glej #layout-transition) */
    transform-origin: left;
    animation: occupancy-grow 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes occupancy-grow {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

.occupancy-bar__fill.is-good {
    background: var(--color-accent);
}

.occupancy-bar__fill.is-warn {
    background: var(--color-warning);
}

.occupancy-bar__fill.is-bad {
    background: var(--color-danger);
}

/* ------------------------------------------------------------
   Namigi in opozorila pod polji obrazcev
   ------------------------------------------------------------ */
.field-hint {
    font-family: var(--font-body);
    font-size: 13.5px;
    color: var(--color-ink-soft);
    margin: 6px 0 0;
}

.field-hint--warn {
    color: var(--color-warning-dark);
    background: var(--color-warning-tint);
    border-radius: var(--radius-sm);
    padding: 8px 12px;
    margin-top: 8px;
}

.field-hint--error {
    color: var(--color-danger-dark);
}

.field-hint--ok {
    color: var(--color-accent-dark);
}

/* ------------------------------------------------------------
   Gumb za prikaz/skritje vsebine gesla
   ------------------------------------------------------------ */
.password-field-wrap {
    position: relative;
}

.password-field-wrap input {
    padding-right: 46px !important;
}

.password-toggle-btn {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--color-ink-soft);
    cursor: pointer;
    padding: 8px;
    margin: 0 !important;
    font-size: 15px;
}

.password-toggle-btn:hover {
    color: var(--color-primary-dark);
}

/* ------------------------------------------------------------
   Majhen sekundarni gumb v vrstici z besedilnim poljem
   ------------------------------------------------------------ */
.btn-inline-small {
    margin: 0 !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
}

@media (max-width: 600px) {
    .quick-nav {
        gap: 6px;
    }

    .quick-nav a {
        font-size: 12.5px;
        padding: 6px 12px;
    }
}