html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Arial,sans-serif;background:#111}*{box-sizing:border-box}.is-hidden{display:none!important}#app{--sidebar-width: clamp(220px, 28vw, 300px);position:relative;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);width:100%;height:100%;transition:grid-template-columns .2s ease}#app.sidebar-collapsed{--sidebar-width: 0px}.sidebar-toggle{position:absolute;top:16px;left:calc(var(--sidebar-width) + 18px);width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:#151515eb;color:#fff;border:1px solid #2a2a2a;border-radius:8px;cursor:pointer;z-index:40;transition:left .2s ease,background .15s ease}.sidebar-toggle-icon{display:block;font-size:1.2rem;line-height:1}.sidebar-toggle:hover{background:#1f1f1ff5}#app.sidebar-collapsed #sidebar{overflow:hidden;padding:0;border-right:none;opacity:0;pointer-events:none}#app.sidebar-collapsed #sidebar-top,#app.sidebar-collapsed #status-section{display:none}#sidebar{grid-column:1;background:#111;color:#fff;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}#sidebar-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:20px}#sidebar h1{margin-top:0;margin-bottom:6px;font-size:1.7rem}#sidebar-top{flex:1;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-width:none;-ms-overflow-style:none}#sidebar-header{position:relative;flex:0 0 auto;background-image:url(/churchill/app/images/sidebar-header.png);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden;border-bottom:1px solid rgb(44,44,44)}#sidebar-header:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#0a0a0a66,#0a0a0aa6);pointer-events:none;z-index:0}#sidebar-header-inner{position:relative;z-index:1;padding:20px}#sidebar-header h1{margin-top:0;margin-bottom:4px;font-size:1.7rem;color:#fff}#sidebar-header .subtitle{margin-top:0;margin-bottom:0;color:#cfcfcf;font-size:.95rem}#sidebar-top::-webkit-scrollbar{display:none}.section{margin-bottom:18px}.section-clear-all{margin-bottom:10px}.clear-all-button{width:auto;margin:4px 2px 0;padding:4px 8px;font-size:.75rem;line-height:1.2;border-radius:6px;text-align:center;opacity:.8}.clear-all-button:hover{opacity:1}.section h2{margin-bottom:12px;font-size:1rem;color:#ddd}#object-info{padding:16px;background:linear-gradient(145deg,#1c1c1c,#151515);border:1px solid #2f2f2f;border-radius:12px;box-shadow:0 6px 18px #00000059}#object-title{margin:0 0 8px;font-size:1.05rem;color:#fff}#object-description{margin:0;color:#bdbdbd;font-size:.92rem;line-height:1.5}button{display:block;width:100%;margin-bottom:10px;padding:10px 12px;background:#1a1a1a;color:#fff;border:1px solid #3a3a3a;border-radius:8px;cursor:pointer;text-align:left;font-size:.9rem}button:hover{background:#2d2d2d}.object-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.surface-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.thumb-button,.thumb-slot{aspect-ratio:1 / 1;width:100%;border-radius:10px;overflow:hidden}.thumb-button{display:block;margin-bottom:0;padding:0;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;text-align:center}.thumb-button:hover{background:#ffffff14;border-color:#ffffff59}.thumb-button.is-active{background:#ffffff1a;border-color:#7fc7ff;box-shadow:0 0 0 2px #7fc7ff2e inset}.thumb-button.is-active:hover{background:#ffffff24}.thumb-image{display:block;width:100%;height:100%;object-fit:cover}.thumb-slot-empty{border:1px dashed rgba(255,255,255,.15);background:#ffffff05}#status{color:#cfcfcf;line-height:1.4}#status-section{margin-top:auto;padding-top:2px;border-top:1px solid #2a2a2a;opacity:.8}#status-section h2{font-size:.88rem;margin-bottom:1px;color:#999}#status{font-size:.8rem;line-height:0;color:#aaa}#viewer{grid-column:2;position:relative;overflow:hidden;width:100%;height:100%;min-width:0;background:#222}#viewer canvas{display:block;width:100%;height:100%}.viewer-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0a0a8c;z-index:20;pointer-events:none}.viewer-loading.is-visible{opacity:1}.viewer-loading-card{width:min(340px,calc(100% - 40px));padding:18px 18px 16px;background:#141414eb;border:1px solid #3a3a3a;border-radius:12px;box-shadow:0 10px 30px #00000059}.viewer-loading:not(.is-visible) .viewer-loading-card{transform:translateY(8px)}.viewer-loading-title{margin-bottom:10px;color:#fff;font-size:1rem;font-weight:700;line-height:1.3}.viewer-loading-bar{width:100%;height:10px;overflow:hidden;background:#2a2a2a;border-radius:999px}.viewer-loading-fill{width:0%;height:100%;background:#9fd3ff;transition:width .12s linear,opacity .12s linear}.viewer-loading-fill.is-indeterminate{width:35%!important;animation:viewer-loading-pulse 1s ease-in-out infinite alternate}@keyframes viewer-loading-pulse{0%{opacity:.45;transform:translate(-10%)}to{opacity:1;transform:translate(120%)}}.viewer-loading-text{margin-top:10px;color:#d8d8d8;font-size:.9rem;text-align:right;font-variant-numeric:tabular-nums}.viewer-loading-footer{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:12px}.viewer-loading-subtext{color:#a9a9a9;font-size:.82rem;line-height:1.2}#annotation-layer{position:absolute;inset:0;pointer-events:none;z-index:10}.viewer-scale{position:absolute;left:18px;bottom:18px;z-index:20;pointer-events:none;display:flex;flex-direction:column;gap:8px;align-items:stretch;padding:none;background:none;border:none;box-shadow:none}.viewer-scale-labels{position:relative;width:180px;height:16px;color:#d6d6d6;font-size:12px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;text-shadow:none}#viewer-scale-left,#viewer-scale-mid,#viewer-scale-right{position:absolute;top:0;white-space:nowrap}#viewer-scale-left{left:0;transform:translate(0);color:#bdbdbd}#viewer-scale-mid{left:50%;transform:translate(-50%);color:#d6d6d6}#viewer-scale-right{right:0;transform:translate(0);color:#fff}.viewer-scale-bar{width:180px;height:14px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#151515;box-shadow:inset 0 1px #ffffff08,0 2px 6px #00000040}.viewer-scale-segment{height:100%}.viewer-scale-segment-dark{background:#000}.viewer-scale-segment-light{background:#fff}.viewer-info-button{position:absolute;top:18px;right:18px;z-index:20;width:42px;height:42px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;background:#141414d1;border:1px solid rgba(255,255,255,.08);border-radius:10px;box-shadow:0 8px 24px #00000073,inset 0 1px #ffffff08;cursor:pointer}.viewer-info-button:hover{background:#222222eb}.viewer-info-icon{display:block;width:20px;height:20px;object-fit:contain;pointer-events:none}.viewer-info-popup{position:absolute;top:68px;right:18px;z-index:21;width:min(360px,calc(100% - 36px))}.viewer-info-popup-card{padding:14px 14px 12px;border-radius:12px;background:#141414f0;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px #00000073,inset 0 1px #ffffff08}.viewer-info-popup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.viewer-info-popup-header h3{margin:0;font-size:.95rem;color:#fff}.viewer-info-close{width:auto;margin:0;padding:2px 8px;font-size:1rem;line-height:1;text-align:center}.viewer-info-popup-body{display:grid;gap:12px}.viewer-info-section h4{margin:0 0 6px;font-size:.85rem;color:#fff}.viewer-info-section p{margin:0 0 6px;color:#c7c7c7;font-size:.82rem;line-height:1.45}.viewer-info-section p:last-child{margin-bottom:0}.viewer-fullscreen-button{position:absolute;right:18px;bottom:18px;z-index:20;width:42px;height:42px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;background:#141414d1;border:1px solid rgba(255,255,255,.08);border-radius:10px;box-shadow:0 8px 24px #00000073,inset 0 1px #ffffff08;cursor:pointer}.viewer-fullscreen-button:hover{background:#222222eb}.viewer-fullscreen-icon{display:block;width:18px;height:18px;object-fit:contain;pointer-events:none}.viewer-overlay{opacity:1;transition:opacity .2s ease}#viewer.viewer-overlays-hidden .viewer-overlay{opacity:0;pointer-events:none}.annotation{position:absolute;width:0;height:0;pointer-events:auto;z-index:11;will-change:transform}.annotation-stem{position:absolute;left:50%;bottom:0;width:2px;height:57px;transform:translate(-50%);background:linear-gradient(to top,#c8c8c800,#c8c8c80f 18%,#c8c8c82e 42%,#c8c8c866)}.annotation-pin{position:absolute;left:50%;bottom:69px;width:24px;height:24px;margin:0;padding:0;min-width:0;transform:translate(-50%,50%);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#fafafaa6;background:#2a2a2a80;border:2px solid rgba(255,255,255,.2);border-radius:50%;cursor:pointer;box-shadow:0 0 0 2px #0006,0 2px 6px #0009;transition:transform .15s ease,background .15s ease}.annotation-pin:hover{transform:translate(-50%,50%) scale(1.15);background:#3a3a3a;border-color:#ffffff59}.annotation-card{position:absolute;left:50%;bottom:98px;display:none;width:180px;padding:10px;border-radius:8px;transform:translate(-50%);background:#1a1a1a;color:#e5e5e5;font-size:.8rem;line-height:1.4;border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 24px #0009,inset 0 1px #ffffff0a}.annotation-card h4{margin:0 0 6px;font-size:.85rem;font-weight:600;color:#fff}.annotation-card p{margin:0;color:#bdbdbd}.annotation.open .annotation-card{display:block}.annotation-nav{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:12px;background:#141414d1;border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 24px #00000073,inset 0 1px #ffffff08}.annotation-nav button{width:34px;height:28px;margin:0;padding:0;display:grid;place-items:center;background:#222;color:#e5e5e5;border:1px solid rgba(255,255,255,.12);border-radius:8px;font-size:16px;line-height:1;text-align:center}.annotation-nav button:hover{background:#2d2d2d}.annotation-nav button:disabled{opacity:.4;cursor:default}#annotation-nav-label{min-width:200px;text-align:center;color:#d6d6d6;font-size:13px;line-height:1.2;white-space:nowrap}#tuning-panel{display:grid;gap:14px}.tuning-control{display:grid;gap:6px}.controls-row{display:flex;gap:8px;margin-top:6px}.controls-row .control-button{flex:1;width:100%;margin:0;text-align:center}.tuning-header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;color:#d8d8d8}.tuning-label{line-height:1.2}.tuning-value{color:#9fd3ff;font-variant-numeric:tabular-nums;white-space:nowrap}.tuning-slider{width:100%}details{opacity:.9}details[open]{opacity:1}details[open]>*:not(summary){margin-top:10px}details summary{cursor:pointer;padding:10px 12px;border-radius:8px;background:#151515;border:1px solid #2a2a2a;transition:background .15s ease;list-style:none}.section-secondary{margin-bottom:8px}.section-secondary details{opacity:1}.section-secondary details summary{padding:8px 0;background:transparent;border:none;border-radius:0;color:#9d9d9d;font-size:.82rem;font-weight:500;letter-spacing:.01em;box-shadow:none;border-bottom:1px solid rgba(255,255,255,.06)}.section-secondary details summary:hover{background:transparent;color:#c7c7c7;border-bottom-color:#ffffff1a}.section-secondary details[open] summary{background:transparent;color:#e0e0e0;border-bottom-color:#ffffff1f}.section-secondary details summary:before{font-size:1rem;margin-right:6px;opacity:.55;transform-origin:center}.section-secondary details[open] summary:before{opacity:.8}.section-secondary details[open]>*:not(summary){margin-top:10px}.section-secondary details button:not(.thumb-button),.section-secondary details .checkbox-row,.section-secondary details #tuning-section{margin-left:2px;margin-right:2px}.section-secondary .checkbox-row{color:#b8b8b8;font-size:.88rem}.ui-divider{height:1px;width:50%;margin:10px 2px;background:#ffffff14}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary:before{content:"▸";display:inline-block;font-size:1.2rem;margin-right:8px;transition:transform .2s ease}details[open] summary:before{transform:rotate(90deg)}button,#object-title,#object-description,#status,details summary{min-width:0;overflow-wrap:anywhere}.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:.9rem}.tuning-right{display:flex;align-items:center;gap:8px}.tuning-reset{width:auto;margin:0;padding:4px 8px;font-size:.75rem;line-height:1;border-radius:6px;text-align:center}#camera-tracker{position:absolute;top:12px;left:12px;z-index:12;display:flex;flex-direction:column;gap:8px;min-width:250px;max-width:320px;padding:8px 10px;border-radius:8px;background:#141414b8;border:1px solid rgba(255,255,255,.08);color:#cfcfcf;font-size:11px;line-height:1.35;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;box-shadow:0 6px 18px #00000059,inset 0 1px #ffffff08}#camera-tracker-text{white-space:pre;color:#d6d6d6}#camera-tracker-copy{align-self:flex-start;width:auto;margin:0;padding:4px 8px;background:#2a2a2a;color:#e5e5e5;border:1px solid rgba(255,255,255,.12);border-radius:6px;font-size:11px;line-height:1.2;text-align:center;cursor:pointer}#camera-tracker-copy:hover{background:#363636}@media(max-width:900px){#app{--sidebar-width: 1fr;grid-template-columns:1fr;grid-template-rows:auto 1fr}#app.sidebar-collapsed{grid-template-columns:1fr;grid-template-rows:auto 1fr}#sidebar{grid-column:1;border-right:none;border-bottom:1px solid #2a2a2a}#viewer{grid-column:1;min-height:50vh}.sidebar-toggle{top:12px;left:auto;right:12px;display:grid;place-items:center;line-height:1}.viewer-info-popup{top:62px;right:12px;width:min(340px,calc(100% - 24px))}.viewer-info-button{top:12px;right:60px}#app.sidebar-collapsed #sidebar{display:none}}
