<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*  ================================================================    GENERAL ================================================================    */
body {
    --line-height: 1.3;
    --paragraph-margin: 1rem;
    --external-link-image: url('data:image/svg+xml; utf8, \ &lt;svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"&gt; &lt;path d="M 0 20 L 0 200 L 180 200 L 180 120 L 155 120 L 155 175 L 25 175 L 25 45 L 80 45 L 80 20 Z" /&gt; &lt;path d="M 75 95 L 105 125 L 160 70 L 200 110 L 200 0 L 90 0 L 130 40 Z" /&gt; &lt;/svg&gt;');
    --select-arrow-image: url('data:image/svg+xml; utf8, \ &lt;svg xmlns="http://www.w3.org/2000/svg" width="1" height="1" viewBox="0 0 1 1"&gt; &lt;path d="M 0.3 0.5 L 0.5 0.7 L 0.7 0.5" style="fill: transparent; stroke: currentColor; stroke-width: 0.1; stroke-linejoin: round; stroke-linecap: round;" /&gt; &lt;/svg&gt;');
    --focus-border: #007aff;
    /*--menubar-color: #4060a0;*/
    --menubar-color: #204080;
    /*--menubar-color-separator: #6080c0;*/
    --menubar-color-separator: #4060a0;
    --menubar-color-err: #a02020;
    --active-color: #a0d0ff;
    --bg-color: #ffffff;
    --text-color: #000000;
    --button-color: #f8f8f8;
    --button-border-color: #c0c0c0;
    --button-error-color: color-mix(in srgb, #ff0000, var(--bg-color) 50%);
    --link-color: #0060e0;
    --view-height: calc(100dvh - (var(--line-height) * 1em + 8px * 2) * 2);
}

body.dark {
    /*--active-color: #4060a0;*/
    --active-color: #204080;
    --bg-color: #404040;
    --text-color: #f8f8f8;
    --button-color: #505050;
    --button-border-color: #808080;
    --link-color: #80c0ff;
}

*, ::before, ::after {
    box-sizing: border-box;
    line-height: calc(var(--line-height) * 1em);
}

body {
    font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--bg-color);
    color: var(--text-color);
}

:nth-child(1 of :not(.hidden, .float-right)) {
    margin-top: 0 !important;
}

:nth-last-child(1 of :not(.hidden, .float-right)) {
    margin-bottom: 0 !important;
}

.hidden {
    display: none !important;
}

body &gt; noscript {
    display: block;
    padding: 16px;
    color: #000000;
    background-color: #ff8080;
    font-weight: bold;
}

h2 {
    margin: var(--paragraph-margin) 0;
    font-size: 1.5em;
}

h3 {
    margin: var(--paragraph-margin) 0;
    font-size: 1.25em;
}

h4 {
    margin: var(--paragraph-margin) 0;
    font-size: 1.1em;
}

hr {
    margin: var(--paragraph-margin) 0;
    border: 1px solid var(--text-color);
}

ul {
    margin: var(--paragraph-margin) 0;
}

svg {
    display: inline-block;
    vertical-align: top;
    width: calc(var(--line-height) * 1em);
    height: calc(var(--line-height) * 1em);
}

a {
    color: var(--link-color);
    text-decoration: 2px underline;
}

code {
    font-size: calc(1em);
}

.btn {
    display: inline-block;
    vertical-align: top;
    border: none;
    font-size: 1em;
    color: inherit;
    text-decoration: none;
    background-color: var(--btn-color);
    box-shadow: 0 0 0 0 inset var(--focus-border);
    transition: 0.3s box-shadow;
    outline: none;
    font-family: inherit;
    border-radius: 0;
    cursor: pointer;
}

.btn:hover {
    background-color: color-mix(in srgb, var(--btn-color), var(--btn-color-tint) 10%);
}

.btn:active {
    background-color: color-mix(in srgb, var(--btn-color), var(--btn-color-tint) 20%);
}

.btn:is(:focus, .focus, :focus-within) {
    box-shadow: 0 0 0 2px inset var(--focus-border);
}

.btn {
    --btn-color: var(--button-color);
    --btn-color-tint: var(--text-color);
    border: 1px solid var(--button-border-color);
    padding: 7px;
    color: var(--text-color);
}

.btn.current {
    --btn-color: var(--active-color);
    /*--btn-color-tint: #ffffff;
    color: #ffffff;*/
}

.btn.err {
    --btn-color: var(--button-error-color);
}

.btn[disabled] {
    cursor: not-allowed;
    --btn-color-tint: var(--btn-color);
    --disabled-bg-color: color-mix(in srgb, var(--text-color), transparent 75%);
    background-image: repeating-linear-gradient(135deg, var(--disabled-bg-color) 0%, transparent 5%, var(--disabled-bg-color) 10%);
    /* #c0c0c080 */
}

.btn[disabled] * {
    pointer-events: none;
}

button.btn * {
    pointer-events: none;
}

select.btn {
    appearance: none;
    background-image: var(--select-arrow-image);
    background-size: 15px;
    background-repeat: no-repeat;
    background-position: right;
    padding-right: 15px;
}

label.btn {
    display: inline-flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.popup-close {
    --btn-color: #ffc0c0;
    --btn-color-tint: #ff0000;
    padding: 4px;
    border: none;
    color: #000000;
}

.range {
    flex: auto;
    vertical-align: top;
    margin: 0;
    max-width: 100%;
    height: calc(var(--line-height) * 1em);
    font-size: 1em;
    color: inherit;
    outline: none;
    cursor: inherit;
}

.toggle-btn {
    --rotate-closed: 90deg;
    --rotate-open: 0deg;
}

.toggle-btn &gt; svg {
    rotate: var(--rotate-open);
    transition: 0.3s rotate;
}

.toggle-btn.closed &gt; svg {
    rotate: var(--rotate-closed);
}

.table {
    border: 1px solid currentColor;
    border-collapse: collapse;
}

.table :is(th, td) {
    padding: 4px;
    border: 1px solid currentColor;
}

.key {
    display: inline-block;
    vertical-align: baseline;
    padding: 2px;
    border: 1px solid currentColor;
    border-radius: 4px;
    min-width: calc(var(--line-height) * 1em + 2px * 2 + 1px * 2);
    text-align: center;
    font-family: monospace;
    font-size: calc(1em);
}

.loader {
    --size: 40px;
    --stroke-width: 10px;
    --color: #808080;
    --diff: calc(var(--size) / 2 - var(--stroke-width));
    width: var(--size);
    height: var(--size);
    overflow: hidden;
}

.loader::before {
    content: "";
    display: block;
    width: var(--size);
    height: var(--size);
    border: 0.5px solid var(--color);
    border-radius: 50%;
    background-image: conic-gradient(in srgb, transparent 0%, var(--color) 100%);
    mask: radial-gradient(circle var(--diff), transparent 100%, #fff 100%);
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.float-right {
    float: right;
}

.float-clear {
    display: flow-root;
    clear: both;
}

.nogrow {
    flex: unset !important;
}

.halfgrow {
    flex-grow: 0.5 !important;
}

.external::after {
    content: "";
    display: inline-block;
    vertical-align: top;
    background-color: currentColor;
    mask-image: var(--external-link-image);
    mask-size: 100% 100%;
    mask-repeat: no-repeat;
    width: 1ch;
    height: 1ch;
    margin-bottom: calc(var(--line-height) * 1em - 1ch);
    margin-left: 1ch;
    text-decoration: none;
}

main {
    display: flex;
    flex-wrap: wrap;
    height: max-content;
    position: relative;
    z-index: 0;
}

/*
#viewHeightGetter {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 0;
    height: var(--view-height);
}
*/
.stickyNav {
    top: 0;
    width: 100%;
    z-index: 990;
    position: sticky;
}

.stickyNav &gt; nav {
    background-color: var(--menubar-color);
}

.stickyNav &gt; nav:nth-child(2) {
    --menubar-color: var(--menubar-color-separator);
}

.stickyNav &gt; nav &gt; div {
    min-width: min-content;
    overflow-y: visible;
}

.stickyNav &gt; nav &gt; div &gt; ul {
    display: flex;
    list-style: none;
    padding: 0;
    flex-wrap: wrap;
}

.stickyNav &gt; nav &gt; div &gt; ul li {
    position: relative;
    display: block;
    flex: min-content;
    --rotate-closed: -90deg;
    --rotate-open: -90deg;
}

.stickyNav &gt; nav &gt; div &gt; ul li &gt; .btn {
    width: 100%;
}

.stickyNav &gt; nav &gt; div &gt; ul li &gt; .btn &gt; .twist {
    rotate: var(--rotate-open);
    transition: 0.3s rotate;
}

.stickyNav &gt; nav &gt; div &gt; ul li &gt; ul {
    display: block;
    position: absolute;
    z-index: 1;
    top: 0;
    left: 100%;
    margin: 0;
    min-width: min-content;
    list-style: none;
    padding: 0;
    /*box-shadow: 0 0 24px 8px #000000a0;*/
}

.stickyNav &gt; nav &gt; div &gt; ul li &gt; ul &gt; li {
    min-width: 5em;
}

.stickyNav &gt; nav &gt; div &gt; ul li:not(:hover, :focus, :focus-within) &gt; .btn &gt; .twist {
    rotate: var(--rotate-closed);
}

.stickyNav &gt; nav &gt; div &gt; ul li:not(:hover, :focus, :focus-within) &gt; ul {
    display: none;
}

.stickyNav &gt; nav &gt; div &gt; ul &gt; li {
    --rotate-closed: -90deg;
    --rotate-open: 0deg;
}

.stickyNav &gt; nav &gt; div &gt; ul &gt; li &gt; .btn {
    text-align: center;
    height: 100%;
}

.stickyNav &gt; nav &gt; div &gt; ul &gt; li &gt; ul {
    top: 100%;
    left: 0;
    width: 100%;
}

.stickyNav &gt; nav &gt; div .btn {
    --btn-color: var(--menubar-color);
    --btn-color-tint: #ffffff;
    border: 1px solid var(--menubar-color-separator);
    padding: 7px;
    color: #ffffff;
}

.stickyNav &gt; nav &gt; div .btn.err {
    --btn-color: var(--menubar-color-err);
}

/* @media (55em &lt; width) */
@media (max-width: 55rem), (max-height: 30rem) {
    .stickyNav {
        position: static;
    }
    .mobile-hide {
        display: none !important;
    }
    body {
        --view-height: 100dvh;
    }
    :root {
        font-size: 0.8rem;
    }
}

.popup {
    z-index: 999;
    border: none;
    padding: 0;
    --popup-padding-x: 32px;
    --popup-padding-y: 32px;
    max-width: calc(100dvw - var(--popup-padding-x) * 2);
    max-height: calc(100dvh - var(--popup-padding-y) * 2);
    background-color: var(--bg-color);
    color: var(--text-color);
    overscroll-behavior: contain;
}

.popup::backdrop {
    background-color: #000000a0;
}

.popup &gt; div &gt; div:first-child {
    display: flex;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
}

.popup &gt; div &gt; div:last-child {
    min-width: calc(var(--line-height) * 1em + 4px * 2);
    min-height: calc(var(--line-height) * 1em + 4px * 2);
    overflow: auto;
    max-height: calc(100dvh - var(--popup-padding-y) * 2);
}

/*  ================================================================    IIFI    ================================================================    */
#imagePopup {
    --popup-padding-x: 8px;
    --popup-padding-y: 8px;
}

#imagePopup &gt; div &gt; div:first-child &gt; .btn {
    border: none;
    padding: 4px;
}

#imagePopupBox {
    width: calc(100dvw - var(--popup-padding-x) * 2);
    height: calc(100dvh - var(--popup-padding-y) * 2);
    display: grid;
    grid-template-rows: 1fr max-content;
    grid-template-columns: 1fr;
    overflow: auto;
}

#imagePopupBox &gt; * {
    overflow: auto;
}

#imagePopupBox .btn, #imagePopupBox .btn * {
    touch-action: none;
}

#imagePopupBox &gt; .imageCanvasBox {
    position: relative;
    z-index: 0;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox {
    position: relative;
    height: 100%;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    background-color: #000000;
    /*&amp;:not(.hover) {
                outline: 2px dashed color-mix(in srgb, var(--focus-border), transparent 50%);
                outline-offset: -2px;
            }*/
    /*
            &amp; &gt; .imageCanvasScrollBox {
                position: relative;
                overflow: auto;
                overscroll-behavior: none;
                touch-action: none;
                height: 100%;
                background-color: #202020;
*/
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox.hover {
    cursor: grab;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox.crosshair {
    cursor: crosshair;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox.dragging {
    cursor: move;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox.dragging ~ * {
    opacity: 0.3;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; #imageCanvas {
    display: block;
    transform-origin: 0 0;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .iifiHUDBox {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .iifiHUDBox:is(#imagePopupBox.hidden-hud *) {
    display: none;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .iifiHUDBox rect {
    fill: #00ff00;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .iifiHUDBox &gt; svg &gt; g:nth-child(2) path {
    fill: transparent;
    stroke: #00ff00;
    stroke-width: 1;
    stroke-linejoin: round;
    stroke-linecap: round;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .iifiHUDBox text {
    fill: #ff0000;
    font-weight: bold;
    stroke: #ff0000;
    stroke-width: 0.2;
    /*text-shadow: 0 0 2px #000000;*/
    font-size: 12px;
    text-anchor: middle;
    /*&amp;:nth-last-of-type(2) {
                        text-anchor: end;
                    }
                    &amp;:last-of-type {
                        text-anchor: start;
                    }*/
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .canvasFooter {
    position: absolute;
    bottom: 0;
    left: calc(var(--line-height) * 1em + 8px * 2);
    right: calc(var(--line-height) * 1em + 8px * 2);
    text-align: center;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .canvasFooter &gt; #imageTimeBox {
    padding: 0 8px 8px 8px;
    font-family: monospace;
    font-size: calc(1em);
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .canvasFooter &gt; #imageMsgBox {
    padding: 8px 8px 0 8px;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .canvasFooter &gt; :is(#imageTimeBox, #imageMsgBox) {
    white-space: pre-wrap;
    overflow: auto;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #imageCanvasDragBox &gt; .canvasFooter &gt; :is(#imageTimeBox, #imageMsgBox) &gt; span {
    display: inline-block;
    vertical-align: top;
    min-height: calc(var(--line-height) * 1em + 8px * 2);
    padding: 8px;
    /*background-color: #00000080;*/
    text-shadow: 0 0 2px #000000;
    /*font-weight: bold;*/
    cursor: text;
    user-select: text;
    -webkit-user-select: text;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox {
    position: absolute;
    top: calc(var(--line-height) * 1em + 4px * 2);
    right: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--button-color);
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox:is(#imagePopupBox.hidden-adjust *) {
    display: none;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox &gt; label.btn {
    flex: auto;
    gap: 8px;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox &gt; label.btn &gt; :first-child {
    flex: auto;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox &gt; label.btn &gt; input {
    width: calc(var(--line-height) * 1em * (10 + 1));
}

#imagePopupBox &gt; .imageCanvasBox &gt; .imageAdjustRangeBox &gt; label.btn &gt; input + div {
    width: 4ch;
    font-family: monospace;
    font-size: calc(1em);
    text-align: right;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .iifiZoomRangeLabel {
    position: absolute;
    bottom: 0;
    left: 0;
    transform: rotate(-90deg) translate(0, 100%);
    transform-origin: 0% 100%;
}

#imagePopupBox &gt; .imageCanvasBox &gt; .iifiOverlayRangeLabel {
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(100%, 0) rotate(-90deg);
    transform-origin: 0% 100%;
    gap: 8px;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #cameraSwitchBtnBox {
    position: absolute;
    bottom: 0;
    right: calc(var(--line-height) * 1em + 8px * 2);
    pointer-events: none;
}

#imagePopupBox &gt; .imageCanvasBox &gt; #cameraSwitchBtnBox .siteMarkerElement {
    width: 128px;
    height: 128px;
    padding: 64px;
}

#imagePopupBox &gt; #imageControlsBox {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    overflow: auto;
    /* @media (55em &lt; width &lt;= 75em) */
    /* @media (width &lt;= 35em) */
    /* @media (35em &lt; width &lt;= 55em) */
}

#imagePopupBox &gt; #imageControlsBox &gt; * {
    overflow: auto;
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel {
    flex: auto;
    cursor: grab;
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel:active {
    cursor: grabbing;
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel &gt; #iifiTimeRange.infinity {
    -webkit-appearance: none;
    width: 100%;
    background-color: color-mix(in srgb, var(--btn-color), var(--btn-color-tint) 15%);
    border-radius: calc(var(--line-height) * 0.5em);
    --slider-image:
                    linear-gradient(-45deg, transparent 30%, currentColor 35%, currentColor 45%, transparent 50%),
                    linear-gradient(-135deg, transparent 30%, currentColor 35%, currentColor 45%, transparent 50%),
                    linear-gradient(45deg, transparent 30%, currentColor 35%, currentColor 45%, transparent 50%),
                    linear-gradient(135deg, transparent 30%, currentColor 35%, currentColor 45%, transparent 50%);
    --slider-image-position:
                    calc(100% * 10 / 70) calc(100% * 20 / 70),
                    calc(100% * 10 / 70) calc(100% * 50 / 70),
                    calc(100% * 60 / 70) calc(100% * 20 / 70),
                    calc(100% * 60 / 70) calc(100% * 50 / 70);
    --slider-image-size:
                    30% 30%,
                    30% 30%,
                    30% 30%,
                    30% 30%;
    --slider-thumb-width: calc(var(--line-height) * 3em);
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel &gt; #iifiTimeRange.infinity::-webkit-slider-container, #imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel &gt; #iifiTimeRange.infinity::-webkit-slider-runnable-track {
    -webkit-appearance: none;
    appearance: none;
    height: calc(var(--line-height) * 1em);
    min-block-size: unset;
    font-size: 1em;
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel &gt; #iifiTimeRange.infinity::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: var(--slider-thumb-width);
    height: calc(var(--line-height) * 1em);
    border: none;
    border-radius: calc(var(--line-height) * 0.5em);
    font-size: 1em;
    background-image: var(--slider-image);
    background-position: var(--slider-image-position);
    background-size: var(--slider-image-size);
    background-repeat: no-repeat;
    background-color: var(--btn-color);
}

#imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel &gt; #iifiTimeRange.infinity::-moz-range-thumb {
    width: var(--slider-thumb-width);
    height: calc(var(--line-height) * 1em);
    border: none;
    border-radius: calc(var(--line-height) * 0.5em);
    font-size: 1em;
    background-image: var(--slider-image);
    background-position: var(--slider-image-position);
    background-size: var(--slider-image-size);
    background-repeat: no-repeat;
    background-color: var(--btn-color);
}

#imagePopupBox &gt; #imageControlsBox &gt; :is(#iifiStartMarkerBtn, #iifiEndMarkerBtn) &gt; div {
    display: inline-block;
    vertical-align: top;
    font-family: monospace;
    font-size: calc(1em);
    white-space: pre;
}

#imagePopupBox &gt; #imageControlsBox &gt; #iifiPlayBtn &gt; * {
    transition: 0.3s width;
}

#imagePopupBox &gt; #imageControlsBox &gt; #iifiPlayBtn.current &gt; :first-child, #imagePopupBox &gt; #imageControlsBox &gt; #iifiPlayBtn:not(.current) &gt; :last-child {
    width: 0;
}

#imagePopupBox &gt; #imageControlsBox &gt; :is(#imageListBtn) {
    width: calc((var(--line-height) * 1em + 8px * 2) * 1.5);
}

#imagePopupBox &gt; #imageControlsBox &gt; :is(#iifiLiveBtn, #iifiGoToBtn) {
    width: calc((var(--line-height) * 1em + 8px * 2) * 2);
}

#imagePopupBox &gt; #imageControlsBox &gt; #playSpeedSelect {
    width: calc((var(--line-height) * 1em + 8px * 2) * 2.5);
    text-align: center;
}

#imagePopupBox &gt; #imageControlsBox &gt; #iifiLiveBtn {
    font-weight: bold;
    letter-spacing: 2px;
}

#imagePopupBox &gt; #imageControlsBox &gt; #iifiLiveBtn.current {
    color: #ffffff;
    background-color: #ff0000;
}

#imagePopupBox &gt; #imageControlsBox &gt; div {
    flex: 100%;
}

@media (max-width: 75rem) {
    #imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel {
        flex: 100%;
        order: 1;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; * {
        order: 2;
    }
}

@media (max-width: 32rem) {
    #imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel {
        flex: 100%;
        order: 1;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; :is(#iifiStartMarkerBtn, #iifiEndMarkerBtn) {
        order: 2;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; div {
        order: 3;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; * {
        order: 4;
    }
}

@media (max-width: 48rem) and (min-width: 32rem) {
    #imagePopupBox &gt; #imageControlsBox &gt; .iifiTimeRangeLabel {
        flex: 100%;
        order: 1;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; #iifiStartMarkerBtn {
        order: 2;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; :is(#iifiPlayBtn, #playSpeedSelect) {
        order: 3;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; #iifiEndMarkerBtn {
        order: 4;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; div {
        order: 5;
    }
    #imagePopupBox &gt; #imageControlsBox &gt; * {
        order: 6;
    }
}

/*  ================================================================    MAIN    ================================================================    */
#listingPopup #listingTitle {
    padding-right: 1em;
}

#listingPopup #listingInputBox {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: var(--paragraph-margin) 0;
    border: 1px solid var(--button-border-color);
    border-radius: 8px;
    padding: 7px;
    background-color: var(--button-color);
}

#listingPopup #listingInputBox &gt; .btn {
    border-radius: 8px;
}

#listingPopup #listingGenerateBtn {
    display: block;
    margin: var(--paragraph-margin) 0;
    width: 100%;
    border-radius: 8px;
}

#listingPopup #listingProgress {
    display: flex;
    flex-wrap: wrap;
    font-size: 0.75em;
}

#listingPopup #listingProgress &gt; .listingProgressBox {
    flex: max-content;
    border: 1px solid currentColor;
    padding: 3px;
    text-align: center;
    letter-spacing: 1px;
}

#listingPopup #listingProgress &gt; .listingProgressBox.current {
    background-color: #00ff00;
    color: #000000;
}

#listingPopup #listingProgress &gt; .listingProgressBox.err {
    background-color: #ff4040;
    color: #000000;
}

#listingPopup #listingDownloadBtn {
    display: block;
    width: 100%;
    color: var(--link-color);
    text-align: center;
}

#helpPopup {
    --popup-padding-x: 12.5dvw;
}

.popup:not(#imagePopup) &gt; div &gt; div:last-child {
    padding: 16px;
}

#updateInfoBox {
    white-space: pre-wrap;
}

#sidebar {
    display: flow-root;
    overflow-x: auto;
    overflow-y: hidden;
    flex: min-content;
    /*border: 1px solid #e0e0e0;*/
    padding: 16px 8px;
}

#content {
    display: flow-root;
    overflow: auto;
    flex: 60%;
    /*border: 1px solid #e0e0e0;*/
    padding: 16px 8px;
    /*min-height: calc((var(--line-height) * 1em + 8px * 2) * 2 + 16px * 2);*/
}

#viewToolBar {
    display: flex;
    flex-wrap: wrap;
    justify-content: right;
    position: relative;
    z-index: 0;
    gap: 8px;
    margin: var(--paragraph-margin) 0;
    /*
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    flex-direction: column;
    */
}

#viewToolBar #versionBox {
    padding: 2px;
    font-size: 0.6em;
    position: absolute;
    right: 0;
    top: -16px;
}

#viewToolBar #collapseSidebarBtn {
    --rotate-closed: 270deg;
    --rotate-open: 90deg;
}

#viewToolBar &gt; :nth-child(2) {
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    flex-wrap: wrap;
    flex: auto;
    width: 23em;
    /*overflow: auto;
        white-space: nowrap;*/
    height: calc(var(--line-height) * 1em + 8px * 2);
    /*#sidebar.hidden + * &amp; {
            width: unset;
        }*/
}

#viewToolBar &gt; :nth-child(2) &gt; h2 {
    padding: 8px;
    text-align: center;
    font-weight: bold;
    margin: 0;
    font-size: 1em;
}

#viewToolBar &gt; :last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

#viewToolBar .btn {
    border-radius: 8px;
}

#viewToolBar #realTimeLiveIndicator {
    border: 4px solid #800000;
    padding: 4px;
    border-radius: 8px;
    font-weight: bold;
    letter-spacing: 2px;
    color: #ffffff;
    background-color: #ff0000;
}

#viewToolBar #thumbnailSizeRangeLabel {
    width: calc(var(--line-height) * 1em * (9 + 1) + 8px * 2);
    margin-right: -8px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

#viewToolBar #thumbnailSizeRangeLabel:not(.hidden) + #sizeToggleBtn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

#fetchCamerasModeSelectBox {
    display: flex;
}

#fetchCamerasModeSelectBox &gt; .btn {
    flex: auto;
}

#fetchCamerasModeSelectBox &gt; .btn:first-child {
    border-top-left-radius: 8px;
}

#fetchCamerasModeSelectBox &gt; .btn:last-child {
    border-top-right-radius: 8px;
}

#qrCodeBox {
    border: solid #c0c0c0;
    border-width: 0 1px;
    padding: 8px 7px;
    background-color: #ffffff;
}

#qrCodeBox &gt; svg {
    width: 100%;
    height: auto;
}

#dateSelectBox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border: solid var(--button-border-color);
    border-width: 0 1px;
    padding: 8px 7px;
    background-color: var(--button-color);
}

#dateSelectBox &gt; label[for=dateSelect] {
    flex: 100%;
}

#dateSelectBox &gt; .btn {
    border-radius: 8px;
}

#dateSelect {
    flex: auto;
    height: calc(var(--line-height) * 1em + 8px * 2);
}

#timeSelectBox {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: solid var(--button-border-color);
    border-width: 0 1px;
    padding: 8px 7px;
    background-color: var(--button-color);
}

#timeSelectBox &gt; .btn {
    flex: auto;
    border-radius: 8px;
    gap: 8px;
}

#timeHourRange + div, #timeMinuteRange + div {
    width: 2ch;
    font-family: monospace;
    font-size: calc(1em);
    text-align: right;
}

#hourSelectBox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border: solid var(--button-border-color);
    border-width: 0 1px;
    padding: 8px 7px;
    background-color: var(--button-color);
}

#hourSelectBox &gt; :first-child {
    flex: 100%;
}

#hourSelectBox &gt; .btn {
    border-radius: 8px;
}

#cameraSelectBox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border: solid var(--button-border-color);
    border-width: 0 1px 1px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    padding: 8px 7px 7px;
    background-color: var(--button-color);
}

#cameraSelectBox &gt; .btn {
    border-radius: 8px;
}

#cameraSelectBox &gt; .btn:not(#addBtn, #qrBtn) {
    flex: auto;
    max-width: 100%;
}

#fetchCamerasBtn {
    border-radius: 8px;
    /*width: 100%;*/
}

#cameraListBox {
    margin: var(--paragraph-margin) 0;
}

#cameraListBox &gt; .float-right {
    display: flex;
    gap: 8px;
    margin-left: 8px;
}

#cameraListBox &gt; .float-right .btn {
    border-radius: 8px;
}

#cameraList .siteBox .siteText {
    padding: 4px;
}

#cameraList .siteBox .camBox {
    display: flex;
}

#cameraList .siteBox .camBox .removeCamBtn {
    border-radius: 4px;
    padding: 4px;
}

#cameraList .siteBox .camBox .camText {
    padding: 4px;
}

#content {
    --full-height: calc(var(--view-height) - (var(--line-height) * 1em + 8px * 2) - 16px * 2 - var(--paragraph-margin));
    --half-height: calc(var(--full-height) / 2 - var(--paragraph-margin) / 2);
}

#mapContainer {
    margin: var(--paragraph-margin) 0;
    border: 1px solid var(--button-color);
    /*border-radius: 2px;*/
    /*padding: 1px;*/
    background-color: var(--button-color);
    height: var(--full-height);
}

#mapContainer:has(+ #contentBox:not(.hidden)) {
    height: var(--half-height);
}

#contentBox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: var(--paragraph-margin) 0;
    --thumbnail-width: 320px;
    overflow: auto;
}

#contentBox:is(#mapContainer:not(.hidden) + *):is(#sidebar.hidden + #content &gt; *) {
    height: var(--half-height);
    box-shadow: 0 0 8px 2px var(--button-border-color);
}

#contentBox :is(.videoTitle, .imageRealTimeTitle, .imageTitle) {
    font-size: 0.8em;
    border: none;
    padding: 4px;
}

#contentBox :is(.videoTitle, .imageRealTimeTitle, .imageTitle)[disabled] {
    background-image: unset;
}

#contentBox .videoHourGroupBox {
    /*flex: auto;*/
    /*border: 1px solid #c0c0c0;
        padding: 7px;*/
}

#contentBox .videoHourGroupBox .videoGroupHeading {
    display: flex;
    margin-bottom: 8px;
}

#contentBox .videoHourGroupBox .videoGroupHeading .restartAllBtn {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

#contentBox .videoHourGroupBox .videoGroupHeading .pauseAllBtn {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

#contentBox .videoHourGroupBox .videoGroupHeading .hourHeading {
    padding: 8px;
    font-weight: bold;
}

#contentBox .videoHourGroupBox .videoGroupBox {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

#contentBox .videoHourGroupBox .videoGroupBox .videoBox {
    width: var(--thumbnail-width);
    /*flex: 250px;*/
}

#contentBox .videoHourGroupBox .videoGroupBox .videoBox .camVideo {
    display: block;
    /*min-width: min(100%, 400px);*/
    width: var(--thumbnail-width);
}

#contentBox .imageRealTimeSiteBox {
    flex: auto;
    /*border: 1px solid #c0c0c0;
        padding: 7px;*/
}

#contentBox .imageRealTimeSiteBox .imageRealTimeGroupHeading {
    width: 100%;
    border: none;
    padding: 8px;
    margin-bottom: 8px;
    color: var(--link-color);
    white-space: pre-wrap;
    /*text-decoration: 2px underline;*/
}

#contentBox .imageRealTimeSiteBox .imageRealTimeGroupHeading::first-line {
    font-weight: bold;
}

#contentBox .imageRealTimeSiteBox .imageRealTimeGroupBox {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

#contentBox .imageRealTimeBox {
    width: var(--thumbnail-width);
}

#contentBox .imageRealTimeBox .camImageRealTime {
    display: block;
    width: var(--thumbnail-width);
    cursor: pointer;
}

#contentBox .sensorBox {
    width: 100%;
}

#contentBox .sensorBox .sensorHeading {
    width: 100%;
    margin: 0;
    padding: 8px;
    background-color: var(--button-color);
    font-size: 1em;
    white-space: pre-wrap;
    text-align: center;
}

#contentBox .sensorBox .sensorDataTable {
    width: 100%;
    margin: 0;
}

#contentBox .sensorBox .sensorDataTable .err {
    /*background-color: var(--button-error-color);*/
}

#contentBox .earthquakeBox {
    width: 100%;
}

#contentBox .earthquakeBox &gt; .toggle-btn {
    border-radius: 8px;
}

#contentBox .earthquakeBox &gt; h2 {
    margin-bottom: 8px;
    padding: 8px;
    background-color: var(--button-color);
    text-align: center;
}

#contentBox .earthquakeBox &gt; div {
    text-align: center;
}

#contentBox .earthquakeBox &gt; .earthquakeImage {
    margin-top: 8px;
    display: block;
    width: 100%;
}

#contentBox .imageBox {
    width: var(--thumbnail-width);
}

#contentBox .imageBox .camImage {
    display: block;
    width: var(--thumbnail-width);
    cursor: pointer;
}

#contentBox .pageFooter {
    width: 100%;
    padding: 16px;
    text-align: center;
}

/*  ================================================================    MAP     ================================================================    */
.siteMarkerElement {
    width: 0;
    height: 0;
    overflow: visible;
}

.siteMarkerElement * {
    touch-action: none;
}

.siteMarkerElement &gt; svg {
    cursor: pointer;
    pointer-events: all !important;
    /*background-color: #ffff80c0;*/
    /*border-radius: 50%;*/
}

.siteMarkerElement &gt; svg:is(:hover, :focus) {
    /*background-color: #80808020;*/
    /*outline: 1px solid #80808080;*/
}

.siteMarkerElement &gt; svg:is(:hover, :focus) &gt; g &gt; path {
    fill-opacity: 0.85;
}

.siteMarkerElement &gt; svg &gt; g &gt; path {
    fill-opacity: 0.65;
    stroke-width: 1;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.siteMarkerElement &gt; svg &gt; g:is(:hover, :focus) &gt; path {
    fill-opacity: 0.85;
    stroke-width: 3;
}

#mapContainer {
    display: flex;
}

#mapContainer .mapBox {
    flex: auto;
    --marker-scale: 1;
    /*&amp; .gm-style-mtc {
            width: max-content !important;

            &amp; &gt; ul {
                left: unset !important;
            }

            &amp; * {
                padding: 0 !important;
            }

            &amp; &gt; :first-child {
                padding: 0 16px 0 4px !important;

                &amp; &gt; span {
                    top: 0 !important;
                    bottom: 0 !important;
                    left: 0 !important;
                    right: 0 !important;
                }
            }
        }*/
}

#mapContainer .mapBox .gm-style :is(.gmnoprint, .gm-control-active, .gm-style-cc):not(.gm-style .gmnoprint *) {
    margin: 0 !important;
}

#mapContainer .mapBox .gm-style {
    font-size: inherit;
    font-family: inherit;
}

#mapContainer .mapBox .fireLabel {
    white-space: pre;
    text-align: center;
    /*background-color: color-mix(in srgb, var(--bg-color), transparent 50%);
            padding: 4px;*/
    text-shadow: 0 0 2px var(--bg-color);
    font-weight: bold;
    transform: translate(0, 50%);
}

#mapContainer .mapBox .targetMarkerImage {
    display: block;
}

#mapContainer .mapBox .sensorMarkerElement {
    width: 0;
    height: 0;
    overflow: visible;
}

#mapContainer .mapBox .sensorMarkerElement * {
    touch-action: none;
}

#mapContainer .mapBox .sensorMarkerElement &gt; svg {
    /*cursor: pointer;*/
    pointer-events: all !important;
    /*background-color: #ffff80c0;*/
    stroke: #ffff0080;
    stroke-width: 0;
    stroke-linejoin: round;
    stroke-linecap: round;
    border-radius: 50%;
}

#mapContainer .mapBox .sensorMarkerElement &gt; svg &gt; ellipse.santaAnaWind {
    stroke: #ff0000;
    stroke-width: 1;
}

#mapContainer .mapBox .sensorMarkerElement &gt; svg &gt; ellipse:hover {
    stroke-width: 3;
}

#mapContainer .fadeControls:not(:hover) {
    opacity: 0.9;
}

#mapContainer .mapFilterBox {
    position: absolute;
    top: calc(var(--line-height) * 1em + 8px * 2);
    left: 0;
    max-height: calc(100% - (var(--line-height) * 1em + 8px * 2));
    z-index: 101;
    /*1000000001*/
    overscroll-behavior: none;
    overflow: auto;
    font-size: 0.9em;
}

#mapContainer .mapFilterBox .mapFilterBtn {
    display: block;
    width: 100%;
    padding: 3px;
}

#mapContainer .mapFilterBox .mapFilterBtn &gt; div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

#mapContainer .mapFilterBox .mapFilterBtn .mapFilterText {
    display: inline-block;
}

#mapContainer .mapControlsBox {
    position: absolute;
    top: 0;
    left: 0;
    /*right: 0;*/
    max-width: 100%;
    max-height: 100%;
    z-index: 100;
    /*1000000000*/
    overscroll-behavior: none;
    overflow: auto;
    font-size: 0.9em;
    display: flex;
    flex-wrap: wrap;
}

#mapContainer .mapControlsBox .btn {
    flex: max-content;
}

#mapContainer .mapControlsBox .mapRangeSliderLabel {
    display: flex;
    gap: 8px;
}

#mapContainer .mapControlsBox .mapRangeSliderLabel &gt; input {
    width: calc(var(--line-height) * 1em * (5 + 1));
}

#mapContainer .mapControlsBox .mapRangeSliderLabel &gt; :last-child {
    font-family: monospace;
    font-size: calc(1em);
    white-space: pre;
}

/*  ================================================================    PLOT    ================================================================    */
#plotBox {
    width: 100%;
    position: relative;
    z-index: 0;
}

#plotBox .loader {
    --color: currentColor;
    --size: calc(var(--line-height) * 1em + 8px * 2);
    --stroke-width: calc(var(--size) / 2);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 100;
}

#plotBox .sensorHeading {
    width: 100%;
    margin: 0;
    padding: 8px;
    background-color: var(--button-color);
    font-size: 1em;
    white-space: pre-wrap;
    text-align: center;
}

#plotBox .sensorHeading.err {
    background-color: var(--button-error-color);
}

#plotBox .uplot {
    color: #000000;
    background-color: #fcfcfc;
}

#plotBox .uplot .u-title {
    font-size: 1em;
}

#plotBox .uplot .u-over {
    touch-action: none;
}

#plotBox .uplot .u-legend {
    --line-height: 1;
    font-size: 12px;
}

#plotBox .uplot .u-legend th .u-label, #plotBox .uplot .u-legend th .u-marker, #plotBox .uplot .u-legend th::after {
    display: inline-block;
    vertical-align: top;
}

#plotBox .uplot .u-legend .u-series:not(.u-off) .u-marker {
    border-width: 6px !important;
}

#plotBox .uplot .u-legend .u-value {
    font-family: monospace;
    font-size: calc(1em);
    white-space: pre;
}
</pre></body></html>