/* =====================================================================
   JANEZ BOT — Risalnik shem (slogi)
   ===================================================================== */

/* --- Reset / osnove --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
    width: 100%;
    overflow: hidden;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 14px;
    color: #2c3e50;
    background: #f5f6fa;
}

button {
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    padding: 6px 12px;
    border: 1px solid #cbd5e0;
    background: #fff;
    border-radius: 4px;
    color: #2d3748;
    transition: all 0.15s;
}

button:hover:not(:disabled) {
    background: #edf2f7;
    border-color: #a0aec0;
}

button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

button.primary {
    background: #4299e1;
    color: white;
    border-color: #3182ce;
}

button.primary:hover:not(:disabled) {
    background: #3182ce;
}

button.danger {
    background: #e53e3e;
    color: white;
    border-color: #c53030;
}

button.danger:hover:not(:disabled) {
    background: #c53030;
}

input, select {
    font-family: inherit;
    font-size: 13px;
    padding: 6px 8px;
    border: 1px solid #cbd5e0;
    border-radius: 4px;
    background: #fff;
    color: #2d3748;
}

input:focus, select:focus {
    outline: none;
    border-color: #4299e1;
    box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}

/* =====================================================================
   GLAVNI RAZPORED (3 stolpci + zgornja orodna vrstica)
   ===================================================================== */
#app {
    display: grid;
    grid-template-columns: 260px 1fr 280px;
    grid-template-rows: 56px 1fr;
    grid-template-areas:
        "toolbar toolbar toolbar"
        "paleta  canvas  lastnosti";
    height: 100%;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* =====================================================================
   ORODNA VRSTICA
   ===================================================================== */
#toolbar {
    grid-area: toolbar;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    z-index: 10;
}

.toolbar-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.toolbar-left h1 {
    font-size: 16px;
    font-weight: 600;
    color: #2d3748;
    margin: 0;
}

.shema-name {
    color: #718096;
    font-size: 13px;
    font-style: italic;
}

.toolbar-center {
    display: flex;
    align-items: center;
    gap: 4px;
}

.toolbar-center .divider {
    width: 1px;
    height: 24px;
    background: #e2e8f0;
    margin: 0 6px;
}

.toolbar-right {
    display: flex;
    align-items: center;
}

.user-info {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #4a5568;
}

.user-role-badge {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    font-weight: 600;
}

.user-role-badge.admin { background: #fed7d7; color: #c53030; }
.user-role-badge.vzdrzevalec { background: #feebc8; color: #c05621; }
.user-role-badge.bralec { background: #c6f6d5; color: #276749; }
.user-role-badge.skladistnik { background: #bee3f8; color: #2c5282; }
.user-role-badge.komercialist { background: #e9d8fd; color: #553c9a; }
.user-role-badge.tajnica { background: #e2e8f0; color: #4a5568; }

#btn-logout {
    padding: 4px 8px;
    font-size: 16px;
}

.status {
    color: #718096;
    font-size: 12px;
}

/* =====================================================================
   LEVI STOLPEC: Paleta komponent
   ===================================================================== */
#paleta {
    grid-area: paleta;
    background: #fff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#paleta h2,
#lastnosti h2 {
    padding: 12px 16px 8px;
    font-size: 14px;
    font-weight: 600;
    color: #2d3748;
    border-bottom: 1px solid #edf2f7;
}

#paleta-isci,
#paleta-filteri {
    padding: 8px 12px;
}

#paleta-isci {
    width: calc(100% - 24px);
    margin: 0 12px;
}

#paleta-filteri select {
    width: calc(100% - 24px);
    margin: 0 12px;
}

.paleta-lista {
    flex: 1;
    overflow-y: auto;
    padding: 4px 8px;
}

.paleta-item {
    padding: 10px 12px;
    margin-bottom: 4px;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    background: #fff;
    cursor: grab;
    user-select: none;
    transition: all 0.15s;
}

.paleta-item:hover {
    background: #ebf8ff;
    border-color: #90cdf4;
    transform: translateX(2px);
}

.paleta-item:active {
    cursor: grabbing;
}

.paleta-item.dragging {
    opacity: 0.5;
}

.paleta-item .ime {
    font-weight: 600;
    font-size: 13px;
    color: #2d3748;
    display: block;
}

.paleta-item .meta {
    font-size: 11px;
    color: #718096;
    margin-top: 2px;
    display: block;
}

.paleta-item .pin-st {
    display: inline-block;
    background: #e2e8f0;
    color: #4a5568;
    padding: 1px 6px;
    border-radius: 10px;
    font-size: 10px;
    margin-top: 4px;
}

.paleta-help {
    padding: 10px 16px;
    background: #f7fafc;
    border-top: 1px solid #edf2f7;
    font-size: 12px;
    color: #718096;
    line-height: 1.4;
}

.loading {
    padding: 20px;
    text-align: center;
    color: #a0aec0;
    font-style: italic;
}

/* =====================================================================
   SREDINA: Canvas
   ===================================================================== */
#canvas-container {
    grid-area: canvas;
    position: relative;
    background: #fafafa;
    overflow: hidden;
}

#canvas-tools {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    gap: 4px;
    background: #fff;
    padding: 4px;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    z-index: 5;
}

#canvas-tools button {
    padding: 4px 8px;
    min-width: 32px;
}

#zoom-level {
    padding: 4px 8px;
    color: #718096;
    font-size: 12px;
    align-self: center;
}

#canvas {
    width: 100%;
    height: 100%;
    cursor: default;
    display: block;
}

#canvas.panning {
    cursor: grabbing;
}

#canvas.dragging-component {
    cursor: grabbing;
}

.canvas-empty {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #a0aec0;
    pointer-events: none;
}

.canvas-empty p {
    font-size: 18px;
    margin-bottom: 8px;
}

.canvas-empty .hint {
    font-size: 13px;
    font-style: italic;
}

	/* =====================================================================
	   DESNI STOLPEC: Lastnosti
	   ===================================================================== */
	#lastnosti {
	    grid-area: lastnosti;
	    background: #fff;
	    border-left: 1px solid #e2e8f0;
	    display: flex;
	    flex-direction: column;
	    overflow: hidden;
	    position: relative;
	    transition: width 0.3s ease;
	}

	/* Collapse mehanika je sedaj na #app (razreda hide-paleta / */
	/* hide-lastnosti) — glej blok "PC: collapse panelov" spodaj. */

	.lastnosti-header {
	    display: flex;
	    align-items: center;
	    justify-content: space-between;
	    padding: 12px 16px;
	    border-bottom: 1px solid #e2e8f0;
	}

	.lastnosti-header h2 {
	    margin: 0;
	    font-size: 14px;
	}

#btn-toggle-lastnosti,
#btn-toggle-paleta {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 16px;
    padding: 4px 8px;
    color: #718096;
    transition: transform 0.3s ease;
}

#btn-toggle-lastnosti:hover,
#btn-toggle-paleta:hover {
    color: #2d3748;
    background: #f7fafc;
}

/* --- PC (≥1200px): collapse panelov s toggle gumbi (◀ / ▶) --- */
@media (min-width: 1200px) {
    #app {
        transition: grid-template-columns 0.3s ease;
    }

    #paleta {
        position: relative;
    }

    /* Gumb za paleto leži v zgornjem desnem kotu panela */
    #btn-toggle-paleta {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 5;
    }

    #paleta h2 {
        padding-right: 36px;
    }

    /* Skrit panel: stolpec širine 0, canvas dobi največ prostora */
    #app.hide-paleta {
        grid-template-columns: 0 1fr 280px;
    }

    #app.hide-lastnosti {
        grid-template-columns: 260px 1fr 0;
    }

    #app.hide-paleta.hide-lastnosti {
        grid-template-columns: 0 1fr 0;
    }

    #app.hide-paleta #paleta {
        overflow: visible;
        border-right: none;
    }

    #app.hide-lastnosti #lastnosti {
        overflow: visible;
        border-left: none;
    }

    /* Puščica ostane vidna na robu canvasa tudi, ko je panel skrit */
    #app.hide-paleta #btn-toggle-paleta {
        right: -34px;
        background: #fff;
        border: 1px solid #e2e8f0;
        border-radius: 4px;
        transform: rotate(180deg);
    }

    #app.hide-lastnosti #btn-toggle-lastnosti {
        position: absolute;
        top: 54px;          /* prej 10px — pod orodno vrstico #canvas-tools (top 12 + ~36px višine) */
        left: -34px;
        background: #fff;
        border: 1px solid #e2e8f0;
        border-radius: 4px;
        transform: rotate(180deg);
        z-index: 5;         /* enako kot #canvas-tools — da je VEDNO nad canvas vsebino */
    }
}

.lastnosti-vsebina {
    flex: 1;
    overflow-y: auto;
    padding: 12px 16px;
}

.lastnosti-vsebina .hint {
    color: #a0aec0;
    font-style: italic;
    text-align: center;
    padding: 20px 0;
}

.lastnosti-vsebina .field {
    margin-bottom: 12px;
}

.lastnosti-vsebina .field label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #718096;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lastnosti-vsebina .field input,
.lastnosti-vsebina .field select {
    width: 100%;
}

.lastnosti-vsebina .field-row {
    display: flex;
    gap: 8px;
}

.lastnosti-vsebina .field-row .field {
    flex: 1;
}

.lastnosti-vsebina .checkbox-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.lastnosti-vsebina .checkbox-row input[type="checkbox"] {
    width: auto;
}

.pini-lista {
    margin-top: 16px;
}

.pini-lista h3 {
    font-size: 12px;
    text-transform: uppercase;
    color: #718096;
    margin-bottom: 8px;
}

.pini-lista .pin {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 8px;
    margin-bottom: 2px;
    background: #f7fafc;
    border-radius: 3px;
    font-size: 12px;
}

.pin .pin-oznaka {
    font-family: 'Consolas', monospace;
    font-weight: 600;
    color: #2d3748;
}

.pin .pin-tip {
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 10px;
    color: white;
}

.pin-tip.vhod        { background: #48bb78; }
.pin-tip.izhod       { background: #f6ad55; }
.pin-tip.napajanje   { background: #f56565; }
.pin-tip.masa        { background: #718096; }
.pin-tip.podatkovni  { background: #4299e1; }
.pin-tip.sbus        { background: #9f7aea; }
.pin-tip.drug        { background: #a0aec0; }

/* =====================================================================
   SVG ELEMENTI na canvasu
   ===================================================================== */
.element-group {
    cursor: pointer;
}

.element-group.selected .element-body {
    stroke: #4299e1;
    stroke-width: 2;
}

.element-group.dragging {
    opacity: 0.7;
}

.element-body {
    fill: #fff;
    stroke: #2d3748;
    stroke-width: 1.5;
}

.element-label {
    font-size: 11px;
    font-weight: 600;
    fill: #2d3748;
    text-anchor: middle;
    pointer-events: none;
}

.element-sublabel {
    font-size: 9px;
    fill: #718096;
    text-anchor: middle;
    pointer-events: none;
}

.element-pin-dot {
    fill: #2d3748;
    stroke: #fff;
    stroke-width: 1;
}

.element-pin-label {
    font-size: 8px;
    fill: #4a5568;
    pointer-events: none;
}

.element-fiksiran {
    fill: #4299e1;
    opacity: 0.6;
}

.selection-box {
    fill: none;
    stroke: #4299e1;
    stroke-width: 1.5;
    stroke-dasharray: 4 2;
    pointer-events: none;
}

.selection-handle {
    fill: #4299e1;
    stroke: #fff;
    stroke-width: 1;
}

.wire-line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    cursor: pointer;
}

.wire-line:hover {
    stroke-width: 4;
}

.wire-line.selected {
    stroke-dasharray: 6 3;
}

/* =====================================================================
   MODALNA OKNA
   ===================================================================== */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 100;
}

.modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 101;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    min-width: 400px;
    max-width: 600px;
    max-height: 80vh;
    overflow-y: auto;
}

.modal.hidden,
.modal-overlay.hidden {
    display: none;
}

.modal-content {
    padding: 24px;
}

.modal-content h3 {
    margin-bottom: 16px;
    color: #2d3748;
}

.modal-content label {
    display: block;
    margin-bottom: 12px;
    font-size: 13px;
    color: #4a5568;
}

.modal-content input,
.modal-content select,
.modal-content textarea {
    width: 100%;
    margin-top: 4px;
}

.modal-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 20px;
}

.odpri-lista {
    max-height: 400px;
    overflow-y: auto;
    margin-bottom: 12px;
}

.odpri-item {
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    margin-bottom: 4px;
    transition: all 0.15s;
}

.odpri-item:hover {
    border-color: #cbd5e0;
}

.odpri-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.odpri-info {
    flex: 1;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
}

.odpri-info:hover {
    background: #ebf8ff;
}

.odpri-item .naziv {
    font-weight: 600;
    color: #2d3748;
}

.odpri-item .meta {
    font-size: 11px;
    color: #718096;
    margin-top: 2px;
}

.btn-brisi-shemo {
    padding: 4px 8px !important;
    min-width: 32px;
    background: #fff5f5 !important;
    border-color: #feb2b2 !important;
    color: #c53030 !important;
    font-size: 14px !important;
}

.btn-brisi-shemo:hover {
    background: #fed7d7 !important;
    border-color: #fc8181 !important;
}

/* =====================================================================
   SCROLLBARI
   ===================================================================== */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f7fafc;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e0;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #a0aec0;
}

/* =====================================================================
   POVEZAVE (MVP 2) — modal, panel, gumbi
   ===================================================================== */

/* Modal "Nova povezava" — širši */
.modal-wide {
    min-width: 480px;
    max-width: 600px;
}

.wire-section {
    background: #f7fafc;
    border: 1px solid #edf2f7;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 12px;
}

.wire-section h4 {
    font-size: 12px;
    text-transform: uppercase;
    color: #4a5568;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.wire-field {
    margin-bottom: 8px;
}

.wire-field label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #718096;
    margin-bottom: 4px;
}

.wire-field input,
.wire-field select {
    width: 100%;
}

.wire-field input:disabled {
    background: #edf2f7;
    color: #4a5568;
    cursor: not-allowed;
}

.wire-field-row {
    display: flex;
    gap: 8px;
}

.wire-field-row .wire-field {
    flex: 1;
}

/* Pin vrstica v panelu lastnosti */
.pin {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    margin-bottom: 2px;
    background: #f7fafc;
    border-radius: 3px;
    font-size: 12px;
}

.pin .pin-oznaka {
    font-family: 'Consolas', monospace;
    font-weight: 600;
    color: #2d3748;
    flex: 1;
}

.pin .pin-tip {
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 10px;
    color: white;
}

.pin-tip.vhod        { background: #48bb78; }
.pin-tip.izhod       { background: #f6ad55; }
.pin-tip.napajanje   { background: #f56565; }
.pin-tip.masa        { background: #718096; }
.pin-tip.podatkovni  { background: #4299e1; }
.pin-tip.sbus        { background: #9f7aea; }
.pin-tip.drug        { background: #a0aec0; }

.btn-povezi {
    padding: 2px 8px !important;
    min-width: 28px;
    background: #ebf8ff !important;
    border-color: #90cdf4 !important;
    color: #2b6cb0 !important;
    font-size: 14px !important;
    line-height: 1;
}

.btn-povezi:hover {
    background: #bee3f8 !important;
    border-color: #63b3ed !important;
}

.hint-small {
    font-size: 11px;
    color: #a0aec0;
    font-style: italic;
    margin: 4px 0 8px;
}

/* Razdelek "Povezave" v panelu */
.povezave-lista {
    margin-top: 16px;
}

.povezave-lista h3 {
    font-size: 12px;
    text-transform: uppercase;
    color: #718096;
    margin-bottom: 8px;
}

.povezava-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    margin-bottom: 4px;
    background: #f7fafc;
    border-radius: 3px;
    font-size: 12px;
}

.povezava-barva-pika {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid #cbd5e0;
    flex-shrink: 0;
}

.povezava-info {
    flex: 1;
    cursor: pointer;
    color: #2d3748;
    font-family: 'Consolas', monospace;
    padding: 2px 4px;
    border-radius: 3px;
}

.povezava-info:hover {
    background: #ebf8ff;
    color: #2b6cb0;
}

.btn-brisi-povezavo {
    padding: 2px 6px !important;
    min-width: 28px;
    background: #fff5f5 !important;
    border-color: #feb2b2 !important;
    color: #c53030 !important;
    font-size: 12px !important;
}

.btn-brisi-povezavo:hover {
    background: #fed7d7 !important;
    border-color: #fc8181 !important;
}

/* SVG — žice in hit area */
.wire-group {
    cursor: pointer;
}

.wire-group:hover .wire-line {
    stroke-width: 4;
}

.wire-line.selected {
    filter: drop-shadow(0 0 4px #4299e1);
}

.wire-label {
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 3;
    stroke-linejoin: round;
}

.wire-hitarea {
    cursor: pointer;
}

/* =====================================================================
   SHELL LAYOUT (Faza 3B.2) — sidebar + glavno okno
   ===================================================================== */
html, body {
    overflow: hidden;
}

#shell {
    display: grid;
    grid-template-columns: 220px 1fr;
    grid-template-rows: 100vh;
    height: 100vh;
    width: 100%;
}

#sidebar {
    background: #2c3e50;
    color: #ecf0f1;
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow-y: auto;
}

.sidebar-header {
    padding: 18px 16px;
    border-bottom: 1px solid #34495e;
}

.sidebar-header h2 {
    font-size: 16px;
    color: #ecf0f1;
    margin: 0;
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    padding: 8px 0;
}

.nav-btn {
    background: transparent;
    border: none;
    color: #bdc3c7;
    text-align: left;
    padding: 12px 16px;
    font-size: 14px;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: all 0.15s;
}

.nav-btn:hover {
    background: #34495e;
    color: #ecf0f1;
}

.nav-btn.active {
    background: #34495e;
    color: #fff;
    border-left-color: #4299e1;
}

#main-area {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f6fa;
}

#toolbar {
    flex-shrink: 0;
}

.view {
    flex: 1;
    overflow: auto;
    padding: 16px;
}

#view-risalnik {
    padding: 0;
    overflow: hidden;
}

#view-risalnik #app {
    height: 100%;
}

/* Risalnik toolbar: prikaži samo na /risalnik routi (status/uporabnik/odjava so vedno vidni) */
body:not(.is-risalnik) #toolbar .toolbar-left,
body:not(.is-risalnik) #toolbar .toolbar-center {
    display: none;
}

/* =====================================================================
   MODULI (Lokacije, Material) — skupni stili
   ===================================================================== */
.module-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.module-header h1 {
    font-size: 20px;
    color: #2d3748;
    margin: 0;
}

.filter-bar {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.filter-bar input, .filter-bar select {
    padding: 8px 12px;
    border: 1px solid #cbd5e0;
    border-radius: 4px;
    font-size: 13px;
}

.filter-bar input { flex: 1; }
.filter-bar select { width: 180px; }

.module-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.module-table th {
    background: #edf2f7;
    padding: 10px 12px;
    text-align: left;
    font-size: 12px;
    text-transform: uppercase;
    color: #4a5568;
    font-weight: 600;
    border-bottom: 1px solid #cbd5e0;
}

.module-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: 13px;
}

.module-table tr:hover {
    background: #f7fafc;
}

.module-table .row-link {
    color: #3182ce;
    cursor: pointer;
    text-decoration: none;
}

.module-table .row-link:hover {
    text-decoration: underline;
}

.status-badge {
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 600;
}

.status-badge.status-aktivna { background: #c6f6d5; color: #276749; }
.status-badge.status-v_gradnji { background: #feebc8; color: #c05621; }
.status-badge.status-ugasnjena { background: #fed7d7; color: #c53030; }
.status-badge.status-arhivirana { background: #e2e8f0; color: #4a5568; }

.btn-icon {
    padding: 4px 8px !important;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 14px;
    border-radius: 4px;
}

.btn-icon:hover {
    background: #edf2f7;
}

.btn-icon.danger:hover {
    background: #fed7d7;
}

.btn-new {
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #3182ce;
    background: #4299e1;
    color: white;
    border-radius: 4px;
}

.btn-new:hover {
    background: #3182ce;
}

.btn-new:not(.primary) {
    background: #fff;
    color: #3182ce;
}

.empty, .loading {
    padding: 20px;
    text-align: center;
    color: #718096;
    font-style: italic;
}

.error {
    color: #c53030;
    padding: 12px;
    background: #fed7d7;
    border-radius: 4px;
}

/* Detail panel */
.detail-panel {
    margin-top: 16px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    overflow: hidden;
}

.detail-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #e2e8f0;
    background: #f7fafc;
}

.detail-header h2 {
    font-size: 16px;
    margin: 0;
    color: #2d3748;
}

.btn-close {
    background: transparent;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: #718096;
}

.btn-close:hover {
    color: #c53030;
}

.tab-bar {
    display: flex;
    border-bottom: 1px solid #e2e8f0;
}

.tab {
    padding: 10px 16px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-size: 13px;
    color: #718096;
}

.tab.active {
    color: #3182ce;
    border-bottom-color: #3182ce;
    font-weight: 600;
}

.tab-content {
    padding: 16px;
}

.detail-table {
    width: 100%;
    border-collapse: collapse;
}

.detail-table td {
    padding: 8px 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: 13px;
}

.detail-table td:first-child {
    font-weight: 600;
    color: #4a5568;
    width: 150px;
}

.detail-actions {
    padding: 12px 16px;
    text-align: right;
}

.entity-form {
    padding: 16px;
}

.form-row {
    margin-bottom: 12px;
}

.form-row label {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
}

.form-row input,
.form-row select,
.form-row textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #cbd5e0;
    border-radius: 4px;
    font-size: 13px;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
    outline: none;
    border-color: #4299e1;
    box-shadow: 0 0 0 2px rgba(66, 153, 225, 0.2);
}

.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.btn-cancel {
    background: #fff;
    color: #718096;
    border: 1px solid #cbd5e0;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

.btn-cancel:hover {
    background: #f7fafc;
}

/* =====================================================================
   RESPONSIVE DESIGN - Manjši zasloni (tablica / telefon)
   ---------------------------------------------------------------------
   Strategija:
   - Na PC (≥1200px): 3-stolpčni layout (paleta | canvas | lastnosti).
   - Na tablici (768-1199px): paleta ostane v layoutu, lastnosti je
     drsni panel (off-canvas), ki se odpre z gumbom v orodni vrstici.
   - Na telefonu (<768px): tako paleta kot lastnosti sta drsna panela.
   Gumbe za prikaz (#btn-show-paleta, #btn-show-lastnosti) prikaže
   izključno CSS media query na manjših zaslonih.
   ===================================================================== */

/* Gumba za prikaz drsnih panelov - privzeto skrita (vidna samo na PC) */
#btn-show-paleta,
#btn-show-lastnosti {
    display: none;
}

/* --- TABLICA (768-1199px): paleta in lastnosti kot drsna panela --- */
@media (max-width: 1199px) {
    #app {
        grid-template-columns: 0 1fr 0;
        grid-template-areas:
            "toolbar toolbar toolbar"
            ". canvas .";
    }

    /* Prikažemo gumbe za oba drsna panela v orodni vrstici */
    #btn-show-paleta,
    #btn-show-lastnosti {
        display: inline-block;
    }

    /* Paleta: off-canvas drsni panel na levi (ob vstopu zaprt) */
    #paleta {
        position: fixed;
        left: 0;
        top: 56px;
        width: 260px;
        max-width: 85vw;
        height: calc(100vh - 56px);
        z-index: 200;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.18);
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

    #paleta.visible {
        transform: translateX(0);
    }

    /* Gumb za zapiranje palete - viden na drsnem panelu */
    #paleta .btn-close-panel {
        display: inline-block;
        position: absolute;
        top: 10px;
        right: 10px;
        background: none;
        border: none;
        font-size: 20px;
        color: #718096;
        cursor: pointer;
        z-index: 10;
    }

    #paleta .btn-close-panel:hover {
        color: #e53e3e;
    }

    /* Lastnosti: off-canvas drsni panel na desni */
    #lastnosti {
        position: fixed;
        right: 0;
        top: 56px;
        width: 300px;
        max-width: 85vw;
        height: calc(100vh - 56px);
        z-index: 200;
        box-shadow: -4px 0 16px rgba(0, 0, 0, 0.18);
        transform: translateX(100%);
        transition: transform 0.3s ease;
        /* Minimizacija onemogočena - panel je ali odprt ali zaprt */
    }

    #lastnosti.visible {
        transform: translateX(0);
    }

    /* Notranja toggle gumba (◀ / ▶) nista potrebna na drsnih panelih - skrijemo */
    #btn-toggle-lastnosti,
    #btn-toggle-paleta {
        display: none;
    }

    /* Gumb za zapiranje lastnosti panela - viden na drsnem panelu */
    #lastnosti .btn-close-panel {
        display: inline-block;
        position: absolute;
        top: 10px;
        right: 10px;
        background: none;
        border: none;
        font-size: 20px;
        color: #718096;
        cursor: pointer;
        z-index: 10;
    }

    #lastnosti .btn-close-panel:hover {
        color: #e53e3e;
    }
}

/* --- TELEFON (<768px): obe mehaniki podedovani iz tabličnega bloka --- */
@media (max-width: 767px) {
    #app {
        grid-template-columns: 0 1fr 0;
        grid-template-areas:
            "toolbar toolbar toolbar"
            ". canvas .";
    }
}

/* --- Zelo majhni zasloni (<480px): preprostejša orodna vrstica --- */
@media (max-width: 480px) {
    #toolbar {
        flex-wrap: wrap;
        height: auto;
        min-height: 56px;
        padding: 6px 8px;
        gap: 4px;
    }

    .toolbar-left h1 {
        font-size: 14px;
    }

    .toolbar-center {
        flex-wrap: wrap;
        gap: 2px;
    }

    .toolbar-center button {
        padding: 4px 8px;
        font-size: 12px;
    }

    #app {
        grid-template-rows: auto 1fr;
    }
}

/* --- Overlay (zatemnitev ozadja) ko je drsni panel odprt --- */
.panel-overlay {
    position: fixed;
    inset: 0;
    top: 56px;
    background: rgba(0, 0, 0, 0.3);
    z-index: 150;
    display: none;
}

.panel-overlay.visible {
    display: block;
}

/* Gumb za zapiranje off-canvas panela (viden samo na manjših zaslonih) */
.btn-close-panel {
    display: none;
}

/* =====================================================================
   SLIKE (Faza 3B.3-A) — galerija, upload, lightbox
   ===================================================================== */
.slike-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid #e2e8f0; }
.slike-tabs .tab-btn { background: none; border: 1px solid #cbd5e0; padding: 4px 12px; border-radius: 6px; margin-left: 4px; cursor: pointer; }
.slike-tabs .tab-btn.active { background: #3182ce; color: #fff; border-color: #3182ce; }

.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; padding: 16px; }
.gallery-item { position: relative; border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; background: #fff; }
.gallery-item img { width: 100%; height: 160px; object-fit: cover; display: block; cursor: pointer; }
.gallery-meta { padding: 6px 8px; font-size: 12px; }
.gallery-meta strong { display: block; margin-bottom: 2px; }
.meta-date { color: #718096; }
.badge { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 8px; text-transform: uppercase; margin-right: 4px; }
.badge.tip-okvara { background: #fed7d7; color: #c53030; }
.badge.tip-pred_popravilom, .badge.tip-po_popravilu { background: #feebc8; color: #c05621; }
.badge.tip-stanje { background: #c6f6d5; color: #276749; }

/* Paket C-1: skupina Beleženje časa v formi naloga */
.form-group-box { border: 1px solid #cbd5e0; border-radius: 6px; padding: 10px 12px; margin: 8px 0; }
.form-group-box > strong { display: block; margin-bottom: 6px; }

/* Paket C-1: vir materiala na nalogu */
.badge.vir-ponudba { background: #c6f6d5; color: #276749; }
.badge.vir-dodatek { background: #feebc8; color: #c05621; }
.btn-del { position: absolute; top: 4px; right: 4px; background: rgba(255,255,255,0.9); border: none; border-radius: 4px; padding: 2px 6px; cursor: pointer; font-size: 14px; }
.btn-del:hover { background: #c53030; color: #fff; }

/* =====================================================================
   PREGLED (Faza 3B.3-B) — KPI kartice, sekcije
   (Opomba: .module-table, .status-badge in .badge so že definirani zgoraj
    v okviru modulov Lokacije/Material/Slike — tukaj jih ne podvajamo.)
   ===================================================================== */
.pregled-container { padding: 16px; }
.module-header h1 { font-size: 20px; color: #2d3748; margin-bottom: 12px; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 24px; }
.kpi-card {
    background: #fff; border: 1px solid #e2e8f0; border-radius: 8px;
    padding: 16px; text-align: center; transition: box-shadow 0.15s;
}
.kpi-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.kpi-value { font-size: 28px; font-weight: 700; color: #2d3748; }
.kpi-label { font-size: 12px; color: #718096; margin-top: 4px; }
.pregled-section { margin-top: 24px; }
.pregled-section h2 { font-size: 16px; color: #2d3748; margin-bottom: 8px; }
.module-table .num { text-align: right; }

/* =====================================================================
   ISKANJE (Faza 3B.3-B)
   ===================================================================== */
.search-container { padding: 16px; max-width: 900px; }
.search-input-wrap { position: relative; margin-bottom: 16px; }
.search-input-wrap input {
    width: 100%; font-size: 16px; padding: 10px 12px; border: 2px solid #cbd5e0;
    border-radius: 8px; box-sizing: border-box;
}
.search-input-wrap input:focus { border-color: #3182ce; outline: none; }
.search-section { margin-bottom: 20px; }
.search-section h3 { font-size: 14px; color: #4a5568; margin-bottom: 6px; }
.search-count { color: #718096; font-weight: normal; font-size: 12px; }
.search-result-row { padding: 6px 8px; border-bottom: 1px solid #e2e8f0; font-size: 13px; cursor: pointer; }
.search-result-row:hover { background: #ebf8ff; }
.search-empty { color: #718096; font-style: italic; padding: 8px; }

/* =====================================================================
   GENERATOR (Faza 3B.3-C) — wizard, pini, SVG, loading
   ===================================================================== */
.generator-container { padding: 16px; max-width: 1100px; }

/* Stepper (kazalec napredka) */
.gen-stepper { display: flex; gap: 4px; margin: 16px 0 24px; }
.gen-step {
    flex: 1; padding: 10px 8px; text-align: center;
    background: #fff; border: 2px solid #e2e8f0; border-radius: 8px;
    cursor: pointer; transition: all 0.15s; font-size: 12px;
}
.gen-step.active { border-color: #3182ce; background: #ebf8ff; }
.gen-step.done { border-color: #38a169; background: #f0fff4; }
.gen-step-num {
    display: inline-block; width: 22px; height: 22px; line-height: 22px;
    border-radius: 50%; background: #cbd5e0; color: #fff; font-weight: 700; margin-right: 4px;
}
.gen-step.active .gen-step-num { background: #3182ce; }
.gen-step.done .gen-step-num { background: #38a169; }

.gen-panel { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; margin-bottom: 16px; }
.gen-panel h2 { font-size: 18px; margin-bottom: 8px; }
.gen-panel h3 { font-size: 14px; margin: 12px 0 6px; color: #4a5568; }

.gen-code { background: #f7fafc; border: 1px solid #e2e8f0; border-radius: 4px; padding: 8px 12px; font-size: 12px; font-family: monospace; margin: 8px 0; white-space: pre; }

.gen-form-row { display: flex; gap: 8px; align-items: flex-end; margin: 12px 0; flex-wrap: wrap; }
.gen-form-row label { flex: 1; min-width: 180px; font-size: 13px; }
.gen-input {
    display: block; width: 100%; font-size: 13px; padding: 6px 8px;
    border: 1px solid #cbd5e0; border-radius: 4px; margin-top: 2px; box-sizing: border-box;
}

.gen-folder-stats { margin: 12px 0; display: flex; gap: 8px; }
.badge.tip-fotografija { background: #ebf8ff; color: #2c5282; }
.badge.tip-pdf { background: #fef5e7; color: #c05621; }
.badge.tip-success { background: #c6f6d5; color: #276749; }
.badge.tip-error { background: #fed7d7; color: #c53030; }

.gen-csv-bar { display: flex; gap: 8px; align-items: center; margin: 12px 0; padding: 8px; background: #f7fafc; border-radius: 4px; flex-wrap: wrap; }

.gen-spatial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 12px; }
@media (max-width: 768px) { .gen-spatial-grid { grid-template-columns: 1fr; } }

.gen-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 768px) { .gen-edit-grid { grid-template-columns: 1fr; } }

.gen-svg-preview {
    border: 1px solid #e2e8f0; border-radius: 4px; padding: 8px; min-height: 200px;
    background: #fafafa; text-align: center; overflow: auto;
}
.gen-svg-preview svg { max-width: 100%; height: auto; }

.gen-success { background: #f0fff4; border: 1px solid #9ae6b4; border-radius: 4px; padding: 8px 12px; margin: 12px 0; color: #276749; font-weight: 600; }

.gen-nav { display: flex; justify-content: space-between; margin-top: 20px; gap: 8px; }

.gen-error { margin: 12px 0; }

/* Loading spinner */
.gen-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; gap: 12px; }
.gen-loading p { color: #4a5568; font-size: 14px; }
.gen-spinner {
    width: 40px; height: 40px; border: 4px solid #e2e8f0;
    border-top-color: #3182ce; border-radius: 50%;
    animation: gen-spin 0.8s linear infinite;
}
@keyframes gen-spin { to { transform: rotate(360deg); } }

.gen-summary table td:first-child { color: #718096; width: 40%; }

/* =====================================================================
   DOKUMENTI (Faza 3B.3-D) — tabela, verzije, modal
   ---------------------------------------------------------------------
   Opomba: .btn-icon, .module-table, .filter-bar, .modal-overlay,
   .modal-content, .btn-new, .btn-cancel, .badge, .module-table .num
   so že definirani v okviru prejšnjih faz — tukaj jih ne podvajamo.
   ===================================================================== */
.dok-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid #e2e8f0; }
.dok-table td { vertical-align: top; }
.dok-opis { font-size: 11px; color: #718096; margin-top: 2px; }
.dok-akcije { white-space: nowrap; text-align: right; }
.dok-link { color: #3182ce; text-decoration: none; font-size: 12px; }
.dok-link:hover { text-decoration: underline; }

/* Tip badge-i (barve po kategoriji) */
.badge.tip-elektro_nacrt, .badge.tip-logicna_shema, .badge.tip-gradbena_shema { background: #ebf8ff; color: #2c5282; }
.badge.tip-skica, .badge.tip-navodilo { background: #fef5e7; color: #c05621; }
.badge.tip-certifikat, .badge.tip-garancija, .badge.tip-pogodba { background: #f0fff4; color: #276749; }
.badge.tip-protokol { background: #faf5ff; color: #6b46c1; }
.badge.tip-drugo { background: #edf2f7; color: #4a5568; }

/* Panel verzij */
.dok-verzije-panel { background: #f7fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin: 12px 0; }
.dok-verzije-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.dok-verzije-head h3 { margin: 0; font-size: 14px; }

/* Modal specifično */
.dok-modal label { display: block; margin-bottom: 10px; font-size: 13px; }
.dok-input { display: block; width: 100%; font-size: 13px; padding: 6px 8px; border: 1px solid #cbd5e0; border-radius: 4px; margin-top: 2px; box-sizing: border-box; }

/* Slike — detail modal (slika + podatki) */
.slike-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
@media (max-width: 768px) { .slike-detail-grid { grid-template-columns: 1fr; } }

/* ===== MATERIAL — DOKUMENTACIJSKI INDEX (Paket B) ===== */
.mat-dok-ikone { white-space: nowrap; font-size: 13px; }
.mat-dok-ikone span { margin-right: 6px; }

.mat-doc-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
@media (max-width: 768px) { .mat-doc-wrap { grid-template-columns: 1fr; } }
.mat-doc-blok { border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px; }
.mat-doc-blok-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }

.mat-slike-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 8px; }
.mat-slike-thumb { position: relative; }
.mat-slike-thumb img { width: 100%; height: 70px; object-fit: cover; border-radius: 6px; display: block; }
.mat-thumb-del { position: absolute; top: 2px; right: 2px; }

.picker-rezultati { max-height: 50vh; overflow-y: auto; margin: 10px 0; }
.picker-row {
    padding: 8px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    margin-bottom: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}
.picker-row:hover { background: #edf2f7; }
.picker-thumb { width: 36px; height: 36px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }

/* =====================================================================
   ODOBRTIVE (Paket E-1) — badge statusov + akcijska gumba
   ===================================================================== */
.badge.odobritev-caka_odobritev { background: #feebc8; color: #c05621; }
.badge.odobritev-odobren { background: #c6f6d5; color: #276749; }
.badge.odobritev-zavrnjen { background: #fed7d7; color: #c53030; }
.btn-icon.btn-approve:hover { color: #276749; }
.btn-icon.btn-reject:hover { color: #c53030; }

/* Uporabniki — admin modul (Paket G-1) */
.vrstica-neaktivna {
    opacity: 0.55;
}

/* =====================================================================
   PAKET A — TABLICA: dotik na risalniku (Pointer Events + pinch)
   ---------------------------------------------------------------------
   - #canvas: touch-action none — browser geste (scroll strani, pinch-zoom
     celotne strani) se na canvasu NE sprožijo; pan in pinch zoom sheme
     izključno prek pointer events (canvas-interact.js). Otroci #canvas
     (SVG skupine/elementi) podedujejo učinek prek preseka touch-action
     verige (element + predniki do scroll containerja) — posebnih pravil
     za otroke ni treba.
   - user-select: none — dolg pritisk na canvasu ne izbira besedila
     (nazivi komponent) in ne odpre sistemskega menija (Android).
   - .paleta-item: touch-action pan-y — seznam komponent se na dotik še
     vedno normalno drsi gor/dol, horizontalni izvlek komponente na
     canvas pa browser ne prevzame (gre skozi pointer events).
   Izven canvasa in elementov palete (menuji, seznami, modali, orodna
   vrstica) browser geste ostanejo privzete.
   ===================================================================== */
#canvas {
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}

.paleta-item {
    touch-action: pan-y;
}

/* =====================================================================
   PAKET A (Task 4): večje tap tarče akcijskih gumbov galerij slik
   Na napravah z grobim kazalcem (tablica/telefon) so gumbi .btn-del
   (~26×22 px) in .btn-icon (odobri/zavrni, ~30×22 px) pod 44×44 px
   priporočilom — tap pogosto zgreši gumb ali ga poje scroll (touch slop).
   Razširitev SAMO prek @media (pointer: coarse), tako da je videz na
   PC (miška, pointer: fine) nespremenjen.
   ===================================================================== */
@media (pointer: coarse) {
    .gallery-item .btn-del,
    .gallery-item .btn-icon {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
    }

    .gallery-item .btn-del {
        padding: 10px 12px;
        /* gumb malo bolj od roba kartice, da razširjeni gumb ne seka
           obrobja gallery-item (overflow: hidden) */
        top: 6px;
        right: 6px;
    }

    .gallery-item .btn-icon {
        padding: 10px 12px !important;
    }

    /* Restore puščici skritih panelov — večje tap tarče na dotiku */
    #app.hide-lastnosti #btn-toggle-lastnosti,
    #app.hide-paleta #btn-toggle-paleta {
        min-width: 44px;
        min-height: 44px;
    }

    /* Paket B (Task 3): večizbirne kontrole — enak standard ≥44 px;
       sama kartica je glavna tap tarča izbora, pika je le indikator. */
    .check-mark {
        width: 44px;
        height: 44px;
        font-size: 22px;
    }

    #btn-multi-select,
    .bulk-bar button {
        min-width: 44px;
        min-height: 44px;
    }

    /* Paket B2 (Task 3): akcijski gumbi v vrsticah projektne dokumentacije
       (.picker-row) in v tabelah (.module-table — PDF ikona nalogov, izbris
       dokumenta) — enak standard ≥44 px; pokriva tudi obstoječe btn-icon
       gumbe materialne tabele. */
    .picker-row .btn-icon,
    .module-table .btn-icon {
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
    }

    .picker-row a.btn-icon,
    .module-table a.btn-icon {
        text-decoration: none;
    }
}

/* =====================================================================
   PAKET B (Task 3): večizborno upravljanje galerije slik
   Preklopni gumb v filter-bar, vrstica stanja nad galerijo, izbor kartic.
   ===================================================================== */
.btn-multi { padding: 8px 14px; border-radius: 6px; border: 1px solid #cbd5e0; background: #fff; cursor: pointer; font-size: 13px; }

.bulk-bar { display: flex; align-items: center; gap: 10px; padding: 8px 16px; background: #ebf8ff; border-bottom: 1px solid #bee3f8; font-size: 14px; flex-wrap: wrap; }
.bulk-count { font-weight: 600; color: #2b6cb0; }
.bulk-bar button { padding: 8px 14px; border-radius: 6px; border: 1px solid #cbd5e0; cursor: pointer; background: #fff; font-size: 13px; }
.bulk-bar button:disabled { opacity: 0.5; cursor: default; }
.bulk-bar .bulk-del { background: #fff5f5; border-color: #fc8181; color: #c53030; }
.bulk-bar .bulk-approve { background: #f0fff4; border-color: #9ae6b4; color: #276749; }
.bulk-bar .bulk-reject { background: #fffaf0; border-color: #f6ad55; color: #c05621; }

.gallery-item.selected { outline: 3px solid #3182ce; outline-offset: -3px; }
.check-mark {
    position: absolute; top: 6px; left: 6px; z-index: 2;
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(255,255,255,0.9); border: 2px solid #3182ce;
    color: #3182ce; font-size: 16px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none;  /* tap tarča je cela kartica, ne pika */
}
.gallery-item.selected .check-mark { background: #3182ce; color: #fff; }

/* Lokacije: pod-pogled detaila — filter bar + seznam skrita (Task 6) */
#lokacije-content.lok-subview .filter-bar,
#lokacije-content.lok-subview #lok-seznam-container { display: none; }

/* TD-23: globalni .hint (naziv v uporabniški tabeli, namigi v formah) */
.hint { color: #6b7280; font-size: 0.85em; }

/* TD-19: naziv v uporabniškem žetonu (zgornji desni kot) */
.user-naziv { color: #6b7280; font-size: 0.8em; }
