﻿.roof-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/*    .roof-container.dragging {
        cursor: grabbing;
    }*/

    .roof-container svg {
/*        cursor: grab;*/
        touch-action: none; /* Prevents default touch actions like scrolling */
        width: 100%;
        height: 100%;
    }

.line {
    stroke: black;
    stroke-width: 1;
}

    .line.edge-undefined {
        stroke-dasharray: 5;
        stroke-dashoffset: 0;
        animation: 0.5s infinite alternate undefined-edge-colour, 1s infinite linear;
    }

    .line.edge-changeable {
        stroke-width: 3px;
    }

        .line.edge-changeable:not(.edge-undefined) {
            stroke: mediumaquamarine !important;
            stroke-dasharray: none !important;
        }

    .line.thumbnail {
        stroke: white !important;
        stroke-width: 2px;
    }

    .line.focus {
        stroke: darkred !important;
    }

    .line.clickable {
        stroke: lightcoral;
        cursor: pointer;
        stroke-opacity: 0;
        stroke-width: 9;
    }

        .line.clickable:hover {
            stroke-opacity: 0.7;
        }

    .line.dash {
        stroke: lightgray;
        stroke-dasharray: 3;
    }

@keyframes undefined-edge-colour {
    from {
        stroke: lightgray;
    }

    to {
        stroke: red;
    }
}

/*@keyframes undefined-edge-dashoffset {
    from {
        stroke-dashoffset: 0;
    }
    to {
        stroke-dashoffset: 100;
    }
}*/

.selected {
    stroke: aquamarine;
    stroke-width: 1;
}


.polygon {
    fill: rgba(118,113,113, 0.01);
}

.icon {
    stroke: black;
    stroke-width: 2;
}

.cutout {
    fill: white;
    fill-opacity: 0;
    stroke: black;
}

/*.delete,
.delete > circle, 
.delete > line {
    opacity: 0.3 !important;
}*/

.parapet {
    stroke: gray;
    fill: gray;
}

.gutter {
    fill: lightblue;
}

.test {
    fill: pink;
}

.invalid {
    stroke: lightcoral;
}

    .invalid + text {
        fill: lightcoral;
    }

.overlay {
    user-select: none;
    pointer-events: none;
    fill-opacity: 0;
    stroke-width: 0;
}

.svg-canvas {
    fill-opacity: 0;
    stroke-width: 0;
}

.draggable {
    pointer-events: auto;
    cursor: move;
}

svg.contractor {
    height: calc(100% - 38px);
}

svg > text {
    user-select: none;
    pointer-events: none;
    font-weight: normal;
}

.vertex {
    fill: red;
    fill-opacity: 0;
    cursor: pointer;
}

    .vertex:hover {
        fill-opacity: 0.9;
    }

.vertex-selected {
    fill: aquamarine;
    fill-opacity: 0.5;
    stroke: lightskyblue;
}

.active {
    fill-opacity: 0.9;
}

.addon-boundingbox {
    fill: lightcoral;
    cursor: pointer;
    fill-opacity: 0;
}

.not-interactable {
    user-select: none;
    pointer-events: none;
}

.dialog-button {
    width: 170px !important;
    float: right;
}

.display-roof-plan {
    background-color: white;
    margin: auto 0;
    min-height: 320px;
    height: 62vh;
    max-height: 62vh;
}

.custom-display-roof-plan {
    background-color: white;
    margin: auto 0;
    min-height: 320px;
    height: 30vw;
    max-height: 53vh;
}

.roof-plan-area {
    width: 100%;
    height: 100%;
    position: relative;
}

.svg-area {
    width: 100%;
    height: 100%;
}

.canvas-buttons {
    width: 100%;
    display: block;
    margin: 10px auto;
}

.advanced-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.side-tab {
    height: inherit !important;
    width: auto !important;
    margin-right: 50px;
}

.e-tab > .e-content {
    height: 90%;
}

.e-listbox-container .e-list-item {
    height: auto !important;
}

.e-sidebar {
    background-color: #eeeeee;
}

.list-box {
    width: 100%;
    height: 100%;
    padding: 8px 16px 8px 16px;
}

.select-component-text {
    margin: 5px auto auto 60px;
}

.selected-edge-text {
    margin: 30px auto auto 20px;
}

line {
    vector-effect: non-scaling-stroke;
}

.area {
    fill: #fff;
    opacity: 0;
    stroke: #ddd;
    stroke-width: 0.1;
}

.gridline {
    stroke: #ddd;
    stroke-width: 2;
}

.gridlineThumbnail {
    stroke: #ddd;
    stroke-width: 2;
    filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4));
}

.arrow {
    stroke: var(--colour-primary, red);
    stroke-width: 2;
}

.arrowHead {
    fill: var(--colour-primary, red);
}

.toleranceLine {
    stroke: #86c5da;
    opacity: 0;
    stroke-width: 15;
}

    .toleranceLine:hover {
        opacity: 0.7;
    }

#tooltip {
    background: #f5f5f5;
    border: 1px solid black;
    border-radius: 1px;
    padding: 5px;
    font-family: Arial;
    font-size: 11px;
}

.edge-item {
    height: 35px;
    display: flex;
    align-items: center;
    gap: 15px;
}

    .edge-item img {
        height: 100%;
    }

    .edge-item p {
        margin-bottom: 0;
        font-size: 18px;
    }

/*div #KeyRegister:focus {
    height: 2px;
    background-color: aqua;
}*/

.shape {
    fill: whitesmoke;
    stroke-opacity: 0;
}

    .shape.thumbnail {
        fill: var(--colour-button, var(--colour-primary, lightgray));
    }

    .shape.focus {
        fill: lightcoral !important;
    }

    .shape.invalid {
        fill: lightcoral !important;
    }

/* Canvas Controls */

.control-panel {
    position: absolute;
    bottom: 15px;
    right: 15px;
    padding: 8px 12px;
    background-color: rgba(255, 255, 255, 0.85);
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    display: flex;
    align-items: center;
    gap: 15px;
    z-index: 10;
    user-select: none;
}

    .control-panel button {
        background-color: var(--colour-primary, gray);
        color: white;
        border: none;
        padding: 6px 12px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 0.9rem;
        transition: background-color 0.2s ease;
    }

        .control-panel button:focus,
        .control-panel button:hover {
            background-color: var(--colour-primary-dark, dimgray);
        }

.zoom-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

    .zoom-controls span {
        min-width: 50px;
        text-align: center;
        font-size: 0.9rem;
    }

/* Responsive Design */

@media (max-width: 1060px) {
    .custom-display-roof-plan {
        height: 70vw;
    }
}

@media (max-width: 600px) {
    .control-panel {
        bottom: 60px;
    }
}
