﻿:root{--base-font:17px;--blue:#1f4e78;--line:#d9dde3;--bg:#f4f6f8}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:#202124;font-family:Arial,'Malgun Gothic',sans-serif;font-size:var(--base-font)}
.wrap{width:100%;max-width:980px;margin:0 auto;padding:18px}
h1{font-size:1.45rem;margin:6px 0 18px;color:#173a59}
.searchBox{display:flex;gap:8px;position:sticky;top:0;background:var(--bg);padding:4px 0 12px;z-index:5}
input{flex:1;min-width:0;font:inherit;padding:14px;border:1px solid #8b949e;border-radius:10px;background:#fff}
button{font:inherit;font-weight:700;padding:13px 18px;border:0;border-radius:10px;background:var(--blue);color:#fff;cursor:pointer;min-height:48px}
.notice{min-height:28px;margin:3px 0 10px;font-weight:700}
.card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px;margin:10px 0;cursor:pointer}
.unit{font-size:1.15rem;font-weight:800;color:#173a59;margin-bottom:6px}
.summary{display:grid;grid-template-columns:1fr;gap:5px;overflow-wrap:anywhere}
.muted{color:#59636e;font-size:.93rem}
.detail{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;overflow:hidden}
.detail h2{margin:0 0 5px;font-size:1.5rem;color:#173a59}
.siteName{font-weight:800;margin:0 0 14px;overflow-wrap:anywhere}
.row{display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid #eceff2;align-items:start}
.label{font-weight:800;color:#39434d}
.value{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.photoArea{margin-top:16px}.photoSection{margin-top:14px;padding:12px;border:1px solid #e1e4e8;border-radius:10px;background:#fafafa}.photoTitle{font-weight:800;font-size:1.05rem;color:#202124;margin:0 0 10px}.photoEmpty{color:#b8b8b8;font-size:.94rem;padding:8px 2px 4px}.photoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.jsonPhotoViewerOpen{overflow:hidden}
.photoGrid a{cursor:zoom-in}
.jsonPhotoViewer{position:fixed;inset:0;z-index:99980;background:#111;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:#fff}
.jsonPhotoViewerTop{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:rgba(0,0,0,.68)}
.jsonPhotoViewerCaption{font-size:.98rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jsonPhotoViewerClose{width:42px;height:42px;flex:0 0 42px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.jsonPhotoViewerStage{position:relative;min-height:0;overflow:hidden;padding:12px;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;cursor:default}
.jsonPhotoViewerImg{position:absolute;left:50%;top:50%;display:block;max-width:none;max-height:none;transform-origin:center center;user-select:none;-webkit-user-drag:none;cursor:grab;will-change:transform}
.jsonPhotoViewerImg.jsonDragging{cursor:grabbing}
.jsonPhotoViewerBar{display:flex;justify-content:center;align-items:stretch;gap:2px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));background:rgba(0,0,0,.76)}
.jsonPhotoViewerTool{min-width:92px;min-height:58px;border:0;background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.82rem;cursor:pointer}
.jsonPhotoViewerIcon{font-size:1.65rem;line-height:1}
.jsonDownloadOverlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.46);display:flex;padding:12px}
.jsonDownloadPC{align-items:center;justify-content:center}
.jsonDownloadMobile{align-items:flex-end;justify-content:center;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.jsonDownloadCard{width:min(520px,100%);background:#fff;color:#202124;border-radius:16px;padding:16px;box-shadow:0 10px 34px rgba(0,0,0,.3)}
.jsonDownloadPC .jsonDownloadCard{width:min(430px,calc(100% - 40px))}
.jsonDownloadMobile .jsonDownloadCard{border-radius:18px 18px 12px 12px}
.jsonDownloadTitle{font-size:1.08rem;font-weight:800;margin:0 0 12px;text-align:center}
.jsonDownloadMenuBtn{display:block;width:100%;min-height:52px;margin:8px 0;padding:10px 12px;border:1px solid #d9dce1;border-radius:10px;background:#fff;color:#202124;font-size:1rem;font-weight:700;cursor:pointer}
.jsonDownloadMenuBtn:first-of-type{font-weight:800}
.jsonDownloadCancelBtn{display:block;width:100%;min-height:48px;margin-top:12px;padding:10px;border:0;border-radius:10px;background:#f1f3f4;color:#202124;font-size:1rem;cursor:pointer}
.jsonDownloadBusy{text-align:center;padding:20px 8px;font-size:1rem;font-weight:700}
@media (max-width:700px){.jsonPhotoViewerTop{padding-left:10px;padding-right:8px}.jsonPhotoViewerStage{padding:4px}.jsonPhotoViewerTool{min-width:72px;min-height:60px}.jsonPhotoViewerBar{justify-content:space-evenly;padding-left:4px;padding-right:4px}}

.photoGrid img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--line)}
.backBtn{margin:0 0 12px}
[hidden]{display:none!important}
@media (orientation:landscape) and (min-width:650px){
.card{display:grid;grid-template-columns:120px 100px 110px minmax(150px,1fr) minmax(140px,1fr) minmax(150px,1fr);gap:10px;align-items:start}
.card .unit{margin:0}.summary{display:contents}.summary .siteOnly{display:none}
}
@media (max-width:430px){.wrap{padding:12px}.row{grid-template-columns:92px minmax(0,1fr)}button{padding-left:14px;padding-right:14px}.photoSection{padding:10px}}
.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}


.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:space-between}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}








/* HS_ACCOUNT_PHASE1_V1_CSS */
.jsonAccountTop{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:8px 0;background:rgba(255,201,197,.28);border-top:1px solid #d9e1e7;border-bottom:1px solid #d9e1e7}
.jsonAccountTabs{display:flex;align-items:center;gap:4px;min-width:0;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.jsonAccountTab{width:max-content;min-width:0;flex:0 0 auto;white-space:nowrap;min-height:38px;padding:7px 12px;border:0;border-radius:8px;background:transparent;color:#4b5563;font-size:.94rem;font-weight:700;box-shadow:none}
.jsonAccountTab:hover:not(:disabled){background:rgba(255,201,197,.38)}
.jsonAccountTabActive{background:rgba(255,201,197,.58);color:#173a59}
.jsonAccountTab:disabled{opacity:.62;cursor:default}
.jsonAccountMenuWrap{position:relative;flex:0 0 auto}
.jsonAccountBtn{min-height:40px;padding:7px 11px;border-radius:999px;background:#fff;color:#173a59;border:1px solid #c8d1da;font-size:.9rem;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.jsonAccountBtn.jsonAccountRegistered{width:42px;min-width:42px;padding:0;font-size:1.22rem}
.jsonAccountPopup{position:absolute;right:0;top:calc(100% + 6px);z-index:100040;width:164px;padding:6px;background:#fff;border:1px solid #d6dde3;border-radius:10px;box-shadow:0 8px 22px rgba(0,0,0,.14)}
.jsonAccountPopup[hidden]{display:none}
.jsonAccountPopupItem{display:block;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:7px;background:#fff;color:#24313d;text-align:left;font-size:.92rem;box-shadow:none}
.jsonAccountPopupItem:hover:not(:disabled){background:#f3f6f8}
.jsonAccountPopupItem:disabled{color:#a0a8b0;cursor:default;background:#fff}
.jsonAccountOverlay{position:fixed;inset:0;z-index:100050;background:rgba(0,0,0,.42);display:flex;align-items:center;justify-content:center;padding:16px}
.jsonAccountCard{width:min(480px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:16px;padding:20px;box-shadow:0 14px 44px rgba(0,0,0,.32)}
.jsonAccountTitle{margin:0 0 6px;font-size:1.28rem;color:#173a59;font-weight:800}
.jsonAccountDesc{margin:0 0 16px;color:#4b5563;line-height:1.5;font-size:.94rem}
.jsonAccountField{display:block;margin:12px 0}
.jsonAccountField span{display:block;font-weight:800;margin:0 0 6px;color:#39434d}
.jsonAccountField input{width:100%;min-height:48px}
.jsonAccountPrivacy{margin:14px 0 0;padding:12px;background:#f6f8fa;border-radius:10px;color:#59636e;font-size:.84rem;line-height:1.5}
.jsonAccountActions{display:flex;gap:8px;margin-top:16px}
.jsonAccountActions button{flex:1}
.jsonAccountCancel{background:#eef1f4;color:#202124}.jsonAccountActions .jsonAccountCancel{flex:0 0 auto;width:auto;min-width:70px}dialog.jsonSingleChoice button[aria-label$="선택창 닫기"],#jsonWorkJudgmentDialog button[aria-label$="선택창 닫기"]{order:-1}
.jsonAccountError{min-height:24px;margin-top:10px;color:#b42318;font-weight:700;font-size:.9rem}
.jsonAccountInfoRow{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #eceff2}
.jsonAccountInfoLabel{font-weight:800;color:#39434d}
.jsonAccountInfoValue{overflow-wrap:anywhere}
.jsonAccountBlocked{position:fixed;inset:0;z-index:100090;background:rgba(244,246,248,.96);display:flex;align-items:center;justify-content:center;padding:20px}
.jsonAccountBlockedCard{width:min(520px,100%);background:#fff;border:1px solid #d9dde3;border-radius:16px;padding:24px;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.12)}
.jsonAccountBlockedCard h2{margin:0 0 10px;color:#173a59}
@media(max-width:430px){.jsonAccountTop{gap:8px;padding:7px 0}.jsonAccountTab{padding:7px 8px;font-size:.86rem}.jsonAccountCard{padding:16px}.jsonAccountBtn{font-size:.84rem}.jsonAccountInfoRow{grid-template-columns:82px minmax(0,1fr)}.jsonAccountPopup{width:154px}}
.jsonUploadOverlay{position:fixed;inset:0;z-index:100060;display:flex;justify-content:center;align-items:center;padding:16px;background:rgba(0,0,0,.42)}
.jsonUploadPanel{box-sizing:border-box;width:min(780px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:#fff;border-radius:16px;padding:22px;color:#172b3a;box-shadow:0 14px 44px #0004;overscroll-behavior:contain}
.jsonUploadPanel *{box-sizing:border-box}.jsonUploadHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.jsonUploadHead h2{margin:0;color:#173a59;font-size:1.4rem}.jsonUploadPanel button{width:auto;margin:0;min-height:44px;padding:9px 15px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.jsonUploadListHead{justify-content:flex-start}.jsonUploadPanel .jsonUploadListClose{flex:0 0 auto;width:auto;white-space:nowrap;padding:9px 15px}
.jsonUploadPhoto>div:first-child{flex-wrap:wrap}.jsonPhotoCapture{display:inline-flex;align-items:center;gap:8px;max-width:100%}.jsonUploadPhoto [data-photo-save]{flex:none;width:auto;white-space:nowrap;background:#205580;color:#fff;min-height:48px;padding:8px 12px}.jsonUploadPhoto [data-photo-save][hidden]{display:none!important}
.jsonUploadPanel [data-work-save]{display:inline-flex;align-items:center;justify-content:center;width:max-content!important;max-width:100%;white-space:nowrap;word-break:keep-all;flex-shrink:0;line-height:1.3}
.jsonUploadPanel [data-work-save]:not([data-photo-save]){min-width:7em}.jsonUploadPanel [data-work-save][aria-busy="true"]{min-width:7em;padding-left:10px;padding-right:14px;min-height:48px}
.jsonUploadPanel [data-work-save] canvas{flex:0 0 24px}.jsonUploadFooter>[data-work-save]{margin-left:auto!important}
.jsonWorkHead #jsonUploadBack{width:max-content!important;min-width:0;white-space:nowrap}
.jsonUploadPanel [data-work-save][aria-busy="true"]:not(:has(canvas))::before{animation:none!important;transform:none!important;content:"";display:block;flex:0 0 24px;width:24px;height:32px;margin-right:8px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20192%20256%22%3E%3Cg%3E%3CanimateTransform%20attributeName%3D%22transform%22%20type%3D%22rotate%22%20values%3D%220%2096%20128%3B0%2096%20128%3B180%2096%20128%22%20keyTimes%3D%220%3B0.8%3B1%22%20dur%3D%221.25s%22%20repeatCount%3D%22indefinite%22%2F%3E%3Cpath%20d%3D%22M35%2020H157M35%20236H157M47%2025V65C47%2095%2081%20107%2090%20128C81%20149%2047%20161%2047%20191V231M145%2025V65C145%2095%20111%20107%20102%20128C111%20149%20145%20161%20145%20191V231%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%2210%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpolygon%20fill%3D%22%23ffd37a%22%20points%3D%2255%2C43%20137%2C43%2096%2C119%22%3E%3Canimate%20attributeName%3D%22points%22%20values%3D%2255%2C43%20137%2C43%2096%2C119%3B60.5%2C53.2%20131.5%2C53.2%2096%2C119%3B67%2C65.3%20125%2C65.3%2096%2C119%3B75.5%2C81%20116.5%2C81%2096%2C119%3B96%2C119%2096%2C119%2096%2C119%3B96%2C119%2096%2C119%2096%2C119%22%20keyTimes%3D%220%3B0.2%3B0.4%3B0.6%3B0.8%3B1%22%20dur%3D%221.25s%22%20repeatCount%3D%22indefinite%22%2F%3E%3C%2Fpolygon%3E%3Cpolygon%20fill%3D%22%23ffd37a%22%20points%3D%2296%2C217%2096%2C217%2096%2C217%22%3E%3Canimate%20attributeName%3D%22points%22%20values%3D%2296%2C217%2096%2C217%2096%2C217%3B96%2C179%20116.5%2C217%2075.5%2C217%3B96%2C163.3%20125%2C217%2067%2C217%3B96%2C151.2%20131.5%2C217%2060.5%2C217%3B96%2C141%20137%2C217%2055%2C217%3B96%2C141%20137%2C217%2055%2C217%22%20keyTimes%3D%220%3B0.2%3B0.4%3B0.6%3B0.8%3B1%22%20dur%3D%221.25s%22%20repeatCount%3D%22indefinite%22%2F%3E%3C%2Fpolygon%3E%3Cpath%20d%3D%22M96%20126V209%22%20stroke%3D%22%23ffd37a%22%20stroke-width%3D%225%22%20stroke-dasharray%3D%223%209%22%3E%3Canimate%20attributeName%3D%22stroke-dashoffset%22%20from%3D%220%22%20to%3D%22-12%22%20dur%3D%220.25s%22%20repeatCount%3D%22indefinite%22%2F%3E%3Canimate%20attributeName%3D%22opacity%22%20values%3D%221%3B1%3B0%3B0%22%20keyTimes%3D%220%3B0.79%3B0.8%3B1%22%20dur%3D%221.25s%22%20repeatCount%3D%22indefinite%22%2F%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E") center/contain no-repeat}
.jsonUploadPanel button:disabled{background:#e9edf1;color:#66717c;cursor:default}.jsonUploadPanel button:focus-visible,.jsonUploadPanel input:focus-visible,.jsonUploadPanel select:focus-visible,.jsonUploadPanel textarea:focus-visible{outline:3px solid #2785c4;outline-offset:2px}
.jsonUploadNote{font-size:.9rem;line-height:1.55;color:#616d79;margin:12px 0}.jsonUploadOwner{font-weight:700;overflow-wrap:anywhere}.jsonUploadEmpty{padding:70px 12px;text-align:center;background:#f5f7fa;border:1px solid #dbe1e7;border-radius:12px;color:#66717c}
.jsonUploadFooter{margin-top:20px;padding:12px 0 0}.jsonUploadFooter button{width:100%}.jsonUploadField{display:block;margin:0;padding:14px 0;border-bottom:1px solid #e8edf2}.jsonUploadField>span{display:block;margin-bottom:8px;font-weight:700;color:#39434d}
.jsonUploadSearch{display:flex;align-items:center;gap:6px}.jsonUploadSearch input{flex:1;min-width:0}.jsonUploadSearch button{flex-shrink:0;padding:9px}.jsonUploadCount{font-weight:700}
.jsonUploadPanel input,.jsonUploadPanel select,.jsonUploadPanel textarea{display:block;min-width:0;width:100%;max-width:100%;margin:0;border:1px solid #b9c5d0;border-radius:8px;padding:10px;font:inherit;font-size:16px;color:#1d2c39;background:#fff;min-height:44px}
.jsonUploadPanel select:disabled{color:#7c8792;background:#f5f7fa}.jsonUploadPanel textarea{resize:vertical}.jsonUploadWorker{padding:6px 0;overflow-wrap:anywhere}
.jsonUploadDetailHead{display:flex;align-items:center;justify-content:space-between;padding:14px 0 8px;gap:10px;font-weight:700}.jsonUploadDetailHead button{background:#eef3f7;color:#205580}
.jsonUploadPhotos{margin-top:18px;display:grid;gap:14px}.jsonUploadPhoto{border:1px solid #dce2e9;background:#fafbfc;border-radius:12px;padding:14px}.jsonUploadPhoto>div{display:flex;align-items:center;gap:8px}.jsonUploadPhoto h3{flex:0 0 auto;margin:0;font-size:1.05rem}.jsonUploadPhoto>div:first-child{gap:12px}.jsonUploadPhoto [data-album]{margin-left:auto!important}.jsonUploadPhoto [data-camera]{font-size:30px;line-height:1.2;min-width:48px;min-height:48px;margin:0}.jsonUploadPhoto button{background:#eef3f7;color:#205580;padding:8px 12px}.jsonUploadPhoto p{margin:22px 0;color:#7c8792}
@media(max-width:480px){.jsonUploadOverlay{padding:8px}.jsonUploadPanel{padding:16px;max-height:calc(100dvh - 16px)}.jsonUploadHead h2{font-size:1.22rem}.jsonUploadHead button{padding:8px 12px}.jsonUploadPhoto{padding:12px}}
.jsonWorkHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.jsonWorkHead h2{text-align:center;font-size:1.2rem}.jsonWorkHead button{padding:8px 10px;font-size:.95rem}
.jsonWorkMeta{display:flex;gap:24px;align-items:center;padding:8px 0 16px;border-bottom:1px solid #e8edf2}.jsonWorkMeta span{overflow-wrap:anywhere}
.jsonUploadPanel [hidden]{display:none!important}.jsonUploadPanel .jsonWorkSiteDisplay{background:transparent;color:#1d2c39;text-align:left;font-weight:400;width:100%;padding:10px;border:1px solid transparent;overflow-wrap:anywhere}
.jsonWorkPair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.jsonWorkSpace{height:24px}
.jsonWorkDefectField{border:0;border-bottom:1px solid #e8edf2;padding:14px 0;margin:0;min-width:0}.jsonWorkDefectField legend{font-weight:700;padding:14px 0 0}.jsonWorkDefectField>div{display:flex;flex-wrap:wrap;gap:8px 16px}
.jsonWorkDefectField label{display:flex;align-items:center;gap:8px;min-height:44px}.jsonUploadPanel .jsonWorkDefectField input{width:20px;height:20px;min-height:0;margin:0;flex-shrink:0}
#jsonUploadOverlay .jsonWorkDefectField{border:0;border-bottom:1px solid #e8edf2;padding:14px 0;margin:0;min-width:0}
#jsonUploadOverlay .jsonWorkDefectField summary{cursor:pointer;min-height:44px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
#jsonWorkDefectSummary{font-weight:400;color:#526677;margin-left:10px}
#jsonUploadOverlay .jsonWorkDefectField:not([open])>div{display:none}
#jsonUploadOverlay .jsonWorkDefectField[open]>div{display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:10px}
#jsonUploadOverlay .jsonWorkDefectField label{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;width:auto;margin:0;padding:0}
#jsonUploadOverlay .jsonWorkDefectField input[type=checkbox]{display:inline-block;appearance:auto;width:20px;height:20px;min-height:20px;max-width:20px;padding:0;margin:0;flex:0 0 20px}
#jsonUploadOverlay .jsonWorkDefectField label span{display:inline;margin:0;flex:0 1 auto}
#jsonUploadOverlay .jsonWorkPair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
#jsonUploadOverlay .jsonWorkPair>.jsonUploadField{min-width:0;width:auto}
#jsonUploadOverlay .jsonWorkDefectOpen{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;border:1px solid #b9c5d0;border-radius:8px;background:white;color:#1d2c39;font-weight:400;text-align:left;padding:10px;gap:12px}
#jsonUploadOverlay #jsonWorkDefectSummary{margin:0;color:inherit;overflow-wrap:anywhere}
#jsonWorkDefectDialog{box-sizing:border-box;width:min(520px,calc(100vw - 32px));max-height:75dvh;overflow:auto;border:1px solid #dce2e9;border-radius:16px;background:white;color:#172b3a;padding:22px;box-shadow:0 14px 44px #0004}
#jsonWorkDefectDialog::backdrop{background:rgba(0,0,0,.35)}
#jsonWorkDefectDialog h3{margin:0 0 18px;font-size:1.15rem;color:#173a59}
#jsonWorkDefectDialog #jsonWorkDefects{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
#jsonWorkDefectDialog #jsonWorkDefects label{display:inline-flex;align-items:center;justify-content:flex-start;gap:5px;width:auto;min-height:40px;padding:0;margin:0;font-size:16px;font-weight:400;cursor:pointer}
#jsonWorkDefectDialog #jsonWorkDefects input[type=checkbox]{appearance:auto;display:inline-block;width:18px;height:18px;min-height:18px;max-width:18px;flex:0 0 18px;margin:0;padding:0;accent-color:#087dff}
#jsonWorkDefectDialog #jsonWorkDefects label span{display:inline;margin:0;padding:0}
#jsonWorkDefectDialog [data-defect-done]{display:block;width:auto;min-width:70px;margin:20px 0 0;padding:10px;min-height:44px;border:0;border-radius:10px;background:#205580;color:white;font:inherit;font-weight:700}
#jsonWorkDefectDialog .jsonWorkDefectHead{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:16px}#jsonWorkDefectDialog .jsonWorkDefectHead h3{margin:0}#jsonWorkDefectDialog #jsonWorkDefectDoneTop{width:auto;display:inline-block;margin:0;padding:8px 12px;font-size:14px;flex-shrink:0}
.jsonCamera{box-sizing:border-box;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px;background:#111;color:#fff;border:0;overflow:hidden}
.jsonCamera[open]{display:flex;flex-direction:column;gap:8px}.jsonCamera::backdrop,.jsonPhotoView::backdrop{background:#000b}
.jsonCamera header,.jsonCamera footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}.jsonCamera header{justify-content:flex-start}
.jsonCamera button,.jsonPhotoView button{width:auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:#205580;color:#fff;font:inherit;cursor:pointer}
.jsonCamera button:disabled{opacity:.5}.jsonCamera label{display:flex;align-items:center;gap:6px;color:#fff;margin:0;font-weight:normal}
.jsonCamera input[type=checkbox]{width:22px;height:22px;margin:0}.jsonCamera input[type=range]{width:100px;min-height:30px;padding:0}
.jsonCameraViewport{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.jsonCameraFrame{position:relative;flex:none;overflow:hidden}
.jsonCameraFrame video,.jsonCameraSource{display:block;width:100%;height:100%;object-fit:contain}.jsonCameraFrame [hidden]{display:none!important}
.jsonCameraBoard{position:absolute;touch-action:none;user-select:none;cursor:move;outline:1px solid #888;max-width:none!important}.jsonCameraBoard:focus-visible{outline:3px solid #ffa500}
.jsonCamera [data-camera-message]{flex:none;margin:0;font-size:14px}.jsonCamera [data-take]{margin-left:auto;background:#fff;color:#111;font-weight:bold;min-width:90px}
.jsonPhotoThumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;color:#687680}.jsonPhotoThumbs figure{display:flex;flex-direction:column;gap:4px;margin:0;width:120px}.jsonPhotoThumbs figure button{width:100%;padding:4px}.jsonPhotoThumbs img{display:block;width:100%;height:90px;object-fit:contain}
.jsonPhotoView{box-sizing:border-box;width:min(900px,95vw);max-height:95dvh;border:0;border-radius:12px;padding:12px;background:#fff}.jsonPhotoView img{display:block;width:100%;max-height:78dvh;object-fit:contain}.jsonPhotoView button{display:block;margin:10px 0 0 auto}
.jsonUploadPhotos>[data-photo-message]{font-size:14px;color:#4c6074}.jsonUploadPhotos>div:has([data-photo-export]){display:flex;gap:8px;flex-wrap:wrap}

.jsonCameraBoard{opacity:.65}
.jsonCamera select{font:inherit;padding:8px;min-height:44px;max-width:210px;background:white;color:#111;border-radius:8px}
.jsonCameraShooting footer>label,.jsonCameraShooting [data-rotate],.jsonCameraShooting [data-left],.jsonCameraShooting [data-switch]{display:none!important}
.jsonCameraShooting [data-take]{min-width:130px;min-height:64px;font-size:22px;border-radius:32px}
.jsonCamera [data-settings][hidden]{display:none}
.jsonCameraShooting .jsonCameraViewport{width:100%}
.jsonUploadPhotos .jsonFolderStatus{display:block;box-sizing:border-box;width:100%;min-height:60px;margin:16px 0;padding:12px;border:1px solid #b7c1c8;border-radius:8px;background:#fff;color:#163e5b;font:inherit;line-height:1.5;resize:none;overflow:hidden;box-shadow:inset 0 1px 2px #00000008}

/* HS_ACCOUNT_PHASE1_V1_CSS_END */
/* HS_ADMIN_WEB_V1_CSS */
.jsonAdminMenuItem{font-weight:800;color:#173a59}
.jsonAdminCard{width:min(760px,100%)}
.jsonAdminList{display:grid;gap:10px}
.jsonAdminUser{border:1px solid #dfe4e8;border-radius:12px;padding:12px;background:#fff}
.jsonAdminUserName{font-weight:900;color:#173a59}
.jsonAdminMeta{font-size:.84rem;color:#66707a}
.jsonAdminGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin-top:10px}
.jsonAdminCheck{display:flex;align-items:center;gap:7px;min-height:34px}
.jsonAdminCheck input{width:18px;height:18px}
.jsonAdminSaveRow{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px}
.jsonAdminMsg{font-size:.84rem;font-weight:700;color:#406080}
.jsonAdminDanger{color:#b42318}
@media(max-width:600px){.jsonAdminGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.jsonAdminCard .jsonAdminGrid{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.jsonAdminCard .jsonAdminGroup{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px}
.jsonAdminCard .jsonAdminCheck{display:inline-flex;flex:0 1 auto;width:auto;max-width:100%;justify-content:flex-start;align-items:center;gap:4px;min-height:44px;margin:0;padding:0;overflow-wrap:anywhere}
.jsonAdminCard .jsonAdminCheck input[type=checkbox]{appearance:auto;position:static;flex:0 0 18px;width:18px!important;height:18px!important;min-width:18px;margin:0!important;padding:0;transform:none}
.jsonAdminCard .jsonAdminActions{display:grid;grid-template-columns:auto 1fr auto;gap:8px;margin-top:14px}.jsonAdminCard #jsonAdminSaveAllBtn{grid-column:3}.jsonAdminCard #jsonAdminSaveStatus{grid-column:1/-1;grid-row:2}
.jsonAdminCard .jsonAdminActions button{width:auto;min-width:64px;min-height:44px;margin:0}
.jsonAdminCard .jsonAdminMeta{overflow-wrap:anywhere}
@media(max-width:600px){.jsonAdminCard{padding:14px!important;box-sizing:border-box;max-width:100%}.jsonAdminCard .jsonAdminUser{padding:10px}.jsonAdminCard .jsonAdminGroup{column-gap:12px}.jsonAdminCard .jsonAdminCheck{font-size:16px}}
.jsonAdminCard .jsonAdminHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.jsonAdminCard .jsonAdminHeader .jsonAccountTitle{margin:0;min-width:0;flex:1;font-size:clamp(18px,4.5vw,24px)}
.jsonAdminCard #jsonAdminTopClose{width:auto;min-width:64px;min-height:44px;margin:0;flex:0 0 auto}.jsonAdminCard .jsonAdminTopActions{display:flex;flex:0 0 auto;gap:6px}
.jsonAdminCard .jsonAdminTopActions button{flex:0 0 auto;width:auto;min-width:48px;min-height:36px;padding:6px 10px;margin:0;font-size:14px;white-space:nowrap}
.jsonAdminNameRow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}.jsonAdminNameRow .jsonDelegate{font-size:14px}.jsonAdminDelegating{color:#164f78;font-weight:bold;margin:6px 0}.jsonAdminCard select{width:auto;max-width:100%;min-height:36px}.jsonAdminCard .jsonGroupId input{width:160px;max-width:100%;min-height:36px}.jsonAdminCard .jsonAdminCheck span{word-break:keep-all;overflow-wrap:normal}
.jsonAdminCard .jsonAdminBulk{min-width:32px;margin-right:2px}
#jsonAdminOverlay .jsonAdminNameEdit{display:inline-block;width:auto;min-height:36px;margin:0 0 0 12px;padding:4px 0;border:0;border-radius:0;background:transparent;color:#205580;font:inherit;font-size:14px;font-weight:400;text-decoration:underline;cursor:pointer;white-space:nowrap}#jsonAdminOverlay .jsonAdminNameEdit[hidden]{display:none}#jsonAdminOverlay .jsonAdminNameEdit:focus-visible{outline:2px solid #205580;outline-offset:3px}
/* HS_ADMIN_WEB_V1_CSS_END */

/* HS_VIEW_TABS_V1_CSS */
.jsonAccountTop{padding-left:2mm;padding-right:2mm}
.jsonAccountTabActive{position:relative;z-index:2;border:2px solid #aeb8c2;box-shadow:0 3px 6px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.85);transform:translateY(-1px)}
.jsonStickyTop{position:sticky;top:0;z-index:100030;background:#fff8f7;padding-top:2px;padding-bottom:5px}
.jsonStickyTop #siteTitle{margin-left:2mm;margin-right:2mm;margin-top:0;margin-bottom:8px}
.jsonStickyTop .jsonAccountTop{margin-left:2mm!important;margin-right:2mm!important}
.jsonAccountTabs{justify-content:flex-start!important;flex:1 1 auto!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch}.jsonAccountTab{width:max-content!important;min-width:0!important;flex:0 0 auto!important;white-space:nowrap!important}.jsonAccountMenuWrap{margin-left:auto!important}
.jsonSearchTools{position:relative;display:flex!important;align-items:center;gap:6px;margin-left:2mm;margin-right:2mm}
.jsonQueryWrap{position:relative;flex:1 1 auto;min-width:0}.jsonQueryWrap input{width:100%;min-width:0;padding-right:38px!important}
.jsonQueryClear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:30px;height:30px;min-height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:#68737d;font-size:22px;font-weight:700;line-height:28px;box-shadow:none}
.jsonSearchIconBtn{flex:0 0 54px!important;width:54px!important;min-width:54px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}
.jsonSearchIconBtn svg{width:29px;height:29px;display:block;overflow:visible}
.jsonQueryClear:hover{background:#eef1f4}.jsonRecentBtn{flex:0 0 auto;white-space:nowrap}
.jsonRecentPopup{position:fixed;z-index:100060;width:max-content;min-width:96px;max-width:190px;background:#fff;border:1px solid #cfd7df;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.18);padding:3px}
.jsonRecentPopup .jsonRecentEmpty{padding:6px 8px;white-space:nowrap;font-size:13px;color:#5b6570}
.jsonRecentPopup button{display:block;width:100%;white-space:nowrap;text-align:left;background:#fff;color:#24313d;border:0;box-shadow:none;padding:6px 8px}
.jsonRecentPopup button:hover{background:#f3f6f8}.jsonStickyTop .notice{margin-left:2mm;margin-right:2mm}
/* HS_VIEW_TABS_V1_CSS_END */