﻿:root {
    --l-threshold: 0.70;
    --l: clamp(0, (l / var(--l-threshold) - 1) * -infinity, 1);
}

object {
    width: 100%;
    height: auto;
}

svg {
    font-family: Arial, Helvetica, sans-serif;

    --text-color: black;

    & [data-shape-name]
    {
        stroke: var(--text-color);
        stroke-width: 1px;
        fill: var(--default-bg-color)
    }

    & text {
            pointer-events: none;
            fill: var(--text-color);
    }
}

.zone-timeslot-tag {
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.55));
}

    .zone-timeslot-tag rect {
        stroke-width: 1;
        rx: 6;
    }

    .zone-timeslot-tag text {
        font-size: 10px;
        font-weight: 700;
        text-anchor: end;
    }

#zoneViewer-tooltip {
    position: fixed;
    display: none;
    pointer-events: none;
    padding: 0 5px;
    background-color: rgba(from var(--bs-body-bg) r g b / 0.9);
    font-size: 1rem;
    border-radius: 5px;
}

/*#zoneViewer[data-shape-name] {
    fill: var(--current-) !important;
}
*/
.unavailable {
    fill: var(--unavailable-bg-color) !important;
}

.available {
    fill: var(--available-bg-color) !important;
}
.booked {
    fill: var(--booked-bg-color) !important;
}

/* Base modal structure */
.zoneviewer-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
}

.zoneviewer-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    opacity: .5;
    /*filter: blur(5px);*/
}

.zoneviewer-modal-box {
    --left: 50%;
    --top: 50%;
    position: absolute;
    top: var(--top);
    left: var(--left);
    transform: translate(-50%, -50%);
    background-color: var(--bs-body-bg);
    padding: 20px;
    border-radius: 8px;
    min-width: 300px;
    max-width: 500px;
    border: 1px solid color-mix(in hsl, var(--bs-body-bg), var(--darken) 18%);
    box-shadow: 0 12px 28px rgba(from var(--bs-black) r g b / 0.22),
        0 4px 12px rgba(from var(--bs-black) r g b / 0.16),
        0 0 0 1px rgba(from var(--bs-body-color) r g b / 0.2);
}

/* Modal header */
.zoneviewer-modal-header {
    position: relative;
    margin-bottom: 20px;
    padding-right: 24px;
}

.zoneviewer-modal-close {
    position: absolute;
    top: -10px;
    right: -10px;
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    padding: 5px;
    color: #666;
    line-height: 1;
}

    .zoneviewer-modal-close:hover {
        color: #333;
    }

/* Logo handling */
.zoneviewer-modal-logo {
    text-align: center;
    margin-bottom: 20px;
}

    .zoneviewer-modal-logo img {
        max-width: 200px;
        max-height: 100px;
        object-fit: contain;
        padding: 4px;
        border-radius: 8px;
        background-color: var(--bs-light);
    }

/* Modal content */
.zoneviewer-modal-info {
    margin-bottom: 20px;
}

    .zoneviewer-modal-info p {
        margin: 8px 0;
    }

/* Provisional notice */
.zoneviewer-provisional-notice {
    background-color: var(--bs-warning) /*#fff3cd*/;
    /*border: 1px solid #ffeeba;*/
    border: none;
    /*color:*/ /*#856404*/ /*;*/
    color: oklch(from var(--bs-warning) var(--l) 0 h);
    padding: 12px;
    border-radius: 4px;
    margin-bottom: 16px;
    line-height: 1.5;
}

/* Modal footer */
.zoneviewer-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

/* Button styles */
.zoneviewer-modal-book,
.zoneviewer-modal-provisional {
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    border: none;
}

.zoneviewer-modal-book {
    background: var(--bs-primary)/*#007bff*/;
    color: white;
}

    .zoneviewer-modal-book:hover {
        background: color-mix(in hsl, var(--bs-primary), var(--bs-dark) 15%) /*#0056b3*/;
    }

.zoneviewer-modal-provisional {
    background: var(--bs-primary) /*#ffc107*/;
    color: oklch(from var(--bs-primary) var(--l) 0 h);
}

    .zoneviewer-modal-provisional:hover {
        /*background: #e0a800;*/
        background: color-mix(in hsl, var(--bs-primary), var(--bs-dark) 15%);
    }

.zoneviewer-modal-cancel {
    background: var(--bs-secondary);
    color: oklch(from var(--bs-primary) var(--l) 0 h);
    /*border: 1px solid #dee2e6;*/
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
}

    .zoneviewer-modal-cancel:hover {
        background: color-mix(in hsl, var(--bs-secondary), var(--bs-dark) 15%);
    }

/* Time inputs */
.zoneviewer-time-inputs {
    display: flex;
    gap: 20px;
    margin: 16px 0;
}

.zoneviewer-time-input-group {
    flex: 1;
}

    .zoneviewer-time-input-group label {
        display: block;
        margin-bottom: 4px;
        color: var(--bs-body)/*#666*/;
        font-size: 0.9em;
    }

.zoneviewer-time-input {
    width: 100%;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1em;
}

/* Notes input */
.zoneviewer-notes-input {
    margin-top: 16px;
}

    .zoneviewer-notes-input label {
        display: block;
        margin-bottom: 4px;
        color: var(--bs-body)/*#666*/;
        font-size: 0.9em;
    }

    .zoneviewer-notes-input textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #ddd;
        border-radius: 4px;
        resize: vertical;
        font-family: inherit;
        font-size: 0.9em;
    }

.modal-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: color-mix(in hsl, var(--bs-body-bg), var(--darken) 10%);
    background-clip: border-box;
    border-radius: .25rem;
}

/* Cursor states */
.zoneviewer-cursor-pointer {
    cursor: pointer;
}

.zoneviewer-cursor-default {
    cursor: default;
}


