.hotspot-editor,.tour-editor{max-width:760px;margin:0 auto;padding:1.5rem}.hotspot-editor__toolbar,.tour-editor__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.hotspot-editor__heading,.tour-editor__heading{margin:0;font-size:1.3rem;color:var(--nv-green-dark, #244f30)}.hotspot-editor__new,.hotspot-form__submit,.tour-editor__add,.tour-editor__submit{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600;cursor:pointer}.hotspot-editor__new:disabled,.tour-editor__add:disabled,.tour-editor__submit:disabled,.hotspot-form__submit:disabled{opacity:.6;cursor:not-allowed}.placement-surface{border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;background:#eef2ee;cursor:crosshair;max-width:100%;height:auto}.placement-surface__bg{fill:#eef2ee}.placement-surface__grid{stroke:#d3ddd3;stroke-width:1}.placement-surface__axis{stroke:#b4c2b4;stroke-width:1.5}.placement-surface__dot{fill:var(--nv-green, #2f6b3f);opacity:.8}.placement-surface__dot--active{fill:#b3261e}.placement-surface__crosshair{fill:none;stroke:#b3261e;stroke-width:2}.placement-surface__label{font-size:11px;fill:var(--nv-green-dark, #244f30)}.placement-scene{border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;overflow:hidden}.placement-scene--not-ready{background:#eef2ee}.placement-scene__message{margin:0;max-width:480px;color:#5a675b;font-size:.9rem}.placement-scene__error{position:absolute}.hotspot-editor__overview{margin-bottom:1rem}.hotspot-editor__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.hotspot-editor__item{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.hotspot-editor__item-type{text-transform:uppercase;font-size:.7rem;font-weight:700;letter-spacing:.04em;background:#e7f3ea;color:var(--nv-green-dark, #244f30);border-radius:4px;padding:.15rem .4rem}.hotspot-editor__item-title{font-weight:600;flex:1}.hotspot-editor__item-pos{font-size:.8rem;color:#5a675b}.hotspot-editor__item-actions{display:flex;gap:.4rem}.hotspot-editor__empty,.hotspot-editor__error{color:#5a675b}.hotspot-form,.tour-editor__form{display:flex;flex-direction:column;gap:1rem}.hotspot-form__field,.tour-editor__field,.tour-editor__speed{display:flex;flex-direction:column;gap:.35rem}.hotspot-form__field label,.tour-editor__field label,.tour-editor__speed label{font-size:.85rem;font-weight:600}.hotspot-form__field input,.hotspot-form__field textarea,.hotspot-form__field select,.tour-editor__field input,.tour-editor__speed input,.tour-editor__vec input{padding:.5rem .6rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.95rem}.hotspot-form__field input[aria-invalid=true],.hotspot-form__field textarea[aria-invalid=true],.tour-editor__field input[aria-invalid=true],.tour-editor__speed input[aria-invalid=true]{border-color:var(--nv-error, #b3261e)}.hotspot-form__coords{display:flex;gap:.5rem}.hotspot-form__coords .hotspot-form__field{flex:1}.hotspot-form__field-error,.tour-editor__field-error{margin:0;font-size:.8rem;color:var(--nv-error, #b3261e)}.hotspot-form__error,.tour-editor__error{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px}.tour-editor__saved{padding:.7rem .85rem;background:#e7f3ea;color:var(--nv-green-dark, #244f30);border:1px solid #bcd9c4;border-radius:6px}.hotspot-form__hint,.tour-editor__hint{margin:0;font-size:.8rem;color:#5a675b}.hotspot-form__actions,.tour-editor__actions{display:flex;gap:.75rem;justify-content:flex-end}.tour-editor__waypoints{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.tour-editor__waypoint{padding:.9rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;display:flex;flex-direction:column;gap:.6rem}.tour-editor__waypoint-header{display:flex;align-items:center;justify-content:space-between}.tour-editor__waypoint-header h3{margin:0;font-size:1rem}.tour-editor__waypoint-controls{display:flex;gap:.4rem}.tour-editor__vec{display:flex;gap:.5rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;padding:.5rem}.tour-editor__vec legend{font-size:.8rem;font-weight:600;padding:0 .3rem}.tour-editor__vec label{display:flex;flex-direction:column;font-size:.8rem;flex:1;gap:.2rem}.starting-point-editor{max-width:760px;margin:0 auto;padding:1.5rem}.starting-point-editor__pick-target{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.9rem}.starting-point-editor__pick-label{font-weight:600;color:var(--nv-green-dark, #244f30)}.starting-point-editor__pick-target label{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}.starting-point-editor__scene{margin-bottom:1rem}.starting-point-editor__lock-height{margin-bottom:1rem;font-size:.9rem}.starting-point-editor__lock-height label{display:inline-flex;align-items:flex-start;gap:.4rem;cursor:pointer;line-height:1.4}.field-editor{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.field-editor__inputs{flex:1;display:flex;flex-direction:column;gap:.6rem}.field-editor__remove{flex-shrink:0;margin-top:1.6rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;padding:.4rem .7rem;font-weight:600;cursor:pointer}.field-editor__remove:disabled{opacity:.6;cursor:not-allowed}.image-collection{display:flex;flex-direction:column;gap:.6rem;padding:.6rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.image-collection__header{display:flex;align-items:center;justify-content:space-between}.image-collection__label{font-size:.85rem;font-weight:600}.image-collection__count{font-size:.8rem;color:#5a675b}.image-collection__empty{margin:0;font-size:.85rem;color:#5a675b}.image-collection__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.image-collection__item{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;background:#f7faf7}.image-collection__thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;flex-shrink:0;background:#eef2ee}.image-collection__url{flex:1;font-size:.8rem;color:#3a463b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-collection__cover-badge{flex-shrink:0;text-transform:uppercase;font-size:.65rem;font-weight:700;letter-spacing:.04em;background:#e7f3ea;color:var(--nv-green-dark, #244f30);border-radius:4px;padding:.15rem .4rem}.image-collection__item-actions{display:flex;gap:.3rem;flex-shrink:0}.image-collection__item-actions button{border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:6px;padding:.3rem .5rem;cursor:pointer;font-size:.85rem}.image-collection__item-actions button:disabled{opacity:.5;cursor:not-allowed}.image-collection__remove{color:var(--nv-error, #b3261e);border-color:#f3c1bd!important;background:#fce8e6!important;font-weight:600}.image-collection__add{display:flex;flex-direction:column;gap:.35rem}.image-collection__add-label{font-size:.85rem;font-weight:600}.image-collection__progress{margin:0;font-size:.8rem;color:#5a675b}.image-collection__message{margin:0;font-size:.8rem}.image-collection__message--error{color:var(--nv-error, #b3261e)}.image-collection__message--status{color:#5a675b}.section-editor{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--nv-surface, #f6f8f6);border:1px solid var(--nv-border, #c9d2c9);border-radius:10px}.section-editor__header{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem}.section-editor__header .hotspot-form__field{flex:1;min-width:12rem}.section-editor__remove{flex-shrink:0;margin-top:1.6rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;padding:.4rem .7rem;font-weight:600;cursor:pointer}.section-editor__remove:disabled{opacity:.6;cursor:not-allowed}.section-editor__fields{display:flex;flex-direction:column;gap:.6rem}.section-editor__fields-header{display:flex;align-items:center;justify-content:space-between}.section-editor__fields-label{font-size:.85rem;font-weight:600}.section-editor__count{font-size:.8rem;color:#5a675b}.section-editor__empty{margin:0;font-size:.85rem;color:#5a675b}.section-editor__field-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.section-editor__field-item{display:flex;align-items:flex-start;gap:.4rem}.section-editor__field-item .field-editor{flex:1}.section-editor__field-move{display:flex;flex-direction:column;gap:.3rem;margin-top:.6rem}.section-editor__field-move button{border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:6px;padding:.25rem .5rem;cursor:pointer}.section-editor__field-move button:disabled{opacity:.5;cursor:not-allowed}.section-editor__add-field{align-self:flex-start;border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:6px;padding:.4rem .8rem;font-weight:600;cursor:pointer}.section-editor__add-field:disabled{opacity:.6;cursor:not-allowed}.section-editor__message{margin:0;font-size:.8rem}.section-editor__message--status{color:#5a675b}.detail-editor{display:flex;flex-direction:column;gap:1rem}.detail-editor__field-error{margin:0;font-size:.8rem;color:var(--nv-error, #b3261e)}.detail-editor__sections{display:flex;flex-direction:column;gap:.6rem}.detail-editor__sections-header{display:flex;align-items:center;justify-content:space-between}.detail-editor__sections-label{font-size:.9rem;font-weight:600}.detail-editor__count{font-size:.8rem;color:#5a675b}.detail-editor__empty{margin:0;font-size:.85rem;color:#5a675b}.detail-editor__section-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.detail-editor__section-item{display:flex;align-items:flex-start;gap:.5rem}.detail-editor__section-item .section-editor{flex:1}.detail-editor__section-move{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem}.detail-editor__section-move button{border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:4px;cursor:pointer;padding:.2rem .45rem}.detail-editor__section-move button:disabled{opacity:.5;cursor:not-allowed}.detail-editor__add-section{align-self:flex-start;border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:4px;cursor:pointer;padding:.4rem .8rem;font-size:.85rem}.detail-editor__add-section:disabled{opacity:.6;cursor:not-allowed}.detail-editor__message{margin:0;font-size:.8rem}.detail-editor__message--status{color:#5a675b}.title-block-editor{max-width:760px;margin:0 auto;padding:1.5rem}.title-block-editor__group{margin:0 0 1.25rem;padding:.9rem 1rem 1.1rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.title-block-editor__group>legend{padding:0 .4rem;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--nv-green-dark, #244f30)}.title-block-editor__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1rem}.title-block-editor__field{display:flex;flex-direction:column;gap:.3rem}.title-block-editor__label{font-size:.78rem;font-weight:600;color:var(--nv-green-dark, #244f30)}.title-block-editor__field input,.title-block-editor__field textarea{width:100%;box-sizing:border-box;padding:.45rem .55rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font:inherit}.title-block-editor__empty{margin:0 0 .75rem;font-size:.85rem;color:var(--nv-muted, #6b766b)}.title-block-editor__revisions{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.6rem}.title-block-editor__revision{display:grid;grid-template-columns:80px 1fr 120px auto;gap:.6rem;align-items:end}.title-block-editor__revision-remove{background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;padding:.45rem .7rem;font-weight:600;cursor:pointer}.title-block-editor__revision-remove:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 640px){.title-block-editor__revision{grid-template-columns:1fr}}.share-configurator{background:#fff;max-width:560px;margin:0 auto;padding:1.75rem;border-radius:12px;box-shadow:0 8px 30px #00000014;display:flex;flex-direction:column;gap:1.25rem}.share-configurator__title{margin:0;font-size:1.25rem;color:var(--nv-green-dark, #244f30)}.share-configurator__url{display:flex;flex-direction:column;gap:.25rem}.share-configurator__url-label{font-size:.85rem;font-weight:600}.share-configurator__url-value{word-break:break-all;color:var(--nv-green, #2f6b3f)}.share-configurator__analytics{display:flex;gap:1.5rem;margin:0;padding:.9rem 1rem;background:var(--nv-surface, #f3f6f2);border-radius:8px}.share-configurator__stat{display:flex;flex-direction:column;gap:.2rem}.share-configurator__stat dt{font-size:.78rem;font-weight:600;color:#5b665c}.share-configurator__stat dd{margin:0;font-size:1.05rem;font-weight:700;color:var(--nv-text, #1b261c)}.share-configurator__analytics-error{margin:0;font-size:.85rem;color:#5b665c}.share-configurator__form{display:flex;flex-direction:column;gap:1rem}.share-configurator__field{display:flex;flex-direction:column;gap:.5rem}.share-configurator__toggle{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem}.share-configurator__subfield{display:flex;flex-direction:column;gap:.35rem;padding-left:1.5rem}.share-configurator__subfield label{font-size:.85rem;font-weight:600}.share-configurator__subfield input,.share-configurator__subfield select{padding:.6rem .7rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:1rem;font-family:inherit}.share-configurator__subfield input[aria-invalid=true]{border-color:var(--nv-error, #b3261e)}.share-configurator__hint{margin:0;font-size:.8rem;color:#5b665c}.share-configurator__field-error{margin:0;font-size:.82rem;color:var(--nv-error, #b3261e)}.share-configurator__error{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;font-size:.9rem}.share-configurator__success{padding:.7rem .85rem;background:#e6f4ea;color:var(--nv-green-dark, #244f30);border:1px solid #b7dcc2;border-radius:6px;font-size:.9rem}.share-configurator__actions{display:flex;justify-content:flex-end}.share-configurator__actions button{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600;cursor:pointer}.share-configurator__actions button:disabled{opacity:.6;cursor:default}.capture-point-placer{max-width:900px;margin:0 auto;padding:1.5rem}.capture-point-placer__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.capture-point-placer__heading{margin:0;font-size:1.3rem;color:var(--nv-green-dark, #244f30)}.capture-point-placer__tools{display:flex;gap:.5rem}.capture-point-placer__tool-btn{background:#fff;color:var(--nv-green-dark, #244f30);border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;padding:.45rem .85rem;font-weight:600;cursor:pointer;font-size:.85rem;transition:background .15s,border-color .15s}.capture-point-placer__tool-btn:hover{background:#e7f3ea}.capture-point-placer__tool-btn--active{background:var(--nv-green, #2f6b3f);color:#fff;border-color:var(--nv-green, #2f6b3f)}.capture-point-placer__tool-btn--active:hover{background:#256633}.capture-point-placer__hint{margin:0 0 .75rem;font-size:.85rem;color:#5a675b}.capture-point-placer__scale-form{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.capture-point-placer__scale-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600}.capture-point-placer__scale-input{width:80px;padding:.4rem .5rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.9rem}.capture-point-placer__canvas-container{position:relative;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;overflow:hidden;margin-bottom:1rem}.capture-point-placer__canvas{display:block;width:100%;height:auto;cursor:crosshair;max-height:600px;object-fit:contain}.capture-point-placer__guidelines{margin-bottom:.75rem}.capture-point-placer__guideline-text{margin:0;font-size:.85rem;color:#5a675b}.capture-point-placer__guideline-text strong{color:var(--nv-green-dark, #244f30)}.capture-point-placer__warning{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;margin-bottom:.75rem;font-size:.85rem}.capture-point-placer__warning p{margin:0 0 .4rem}.capture-point-placer__warning-list{margin:0;padding-left:1.25rem;font-size:.8rem}.capture-point-placer__panel{padding:1rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;margin-top:1rem}.capture-point-placer__panel-heading{margin:0 0 .75rem;font-size:1.05rem;color:var(--nv-green-dark, #244f30)}.capture-point-placer__panel-field{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.capture-point-placer__panel-field label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600}.capture-point-placer__zone-select{padding:.4rem .5rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.85rem}.capture-point-placer__custom-zone-input{padding:.4rem .5rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.85rem;width:150px}.capture-point-placer__assign-btn{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.4rem .75rem;font-weight:600;font-size:.8rem;cursor:pointer}.capture-point-placer__assign-btn:hover{background:#256633}.capture-point-placer__delete-btn{background:transparent;color:var(--nv-error, #b3261e);border:1px solid var(--nv-error, #b3261e);border-radius:6px;padding:.4rem .75rem;font-weight:600;font-size:.8rem;cursor:pointer}.capture-point-placer__delete-btn:hover{background:#fce8e6}.panorama-workspace__list{margin:1.5rem 0;padding:1rem 1.25rem;background:#f8faf8;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.panorama-workspace__list-heading{margin:0 0 .75rem;font-size:1rem;color:var(--nv-green-dark, #244f30)}.panorama-workspace__panorama-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.panorama-workspace__panorama-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px}.panorama-workspace__panorama-label{font-weight:600;font-size:.9rem;color:var(--nv-green-dark, #244f30)}.panorama-workspace__panorama-status{font-size:.8rem;font-weight:600;padding:.2rem .6rem;border-radius:10px}.panorama-workspace__panorama-status--published{background:#e7f3ea;color:#2f6b3f}.panorama-workspace__panorama-status--processing{background:#fff3e0;color:#e65100;animation:pano-pulse 1.5s ease-in-out infinite}.panorama-workspace__panorama-status--failed{background:#fce8e6;color:#b3261e}@keyframes pano-pulse{0%,to{opacity:1}50%{opacity:.6}}.panorama-workspace__processing-hint{margin:.75rem 0 0;font-size:.8rem;color:#5a675b;font-style:italic}.panorama-workspace__no-tour{margin:1.5rem 0;padding:1rem 1.25rem;background:#f4f7f4;border:1px dashed var(--nv-border, #c9d2c9);border-radius:6px;color:#5a675b;font-size:.9rem}.panorama-hotspot-editor{margin:1.5rem 0;padding:1rem 1.25rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.panorama-hotspot-editor__heading{margin:0 0 .75rem;font-size:1.15rem;color:var(--nv-green-dark, #244f30)}.panorama-hotspot-editor__selector{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.panorama-hotspot-editor__selector label{font-weight:600;font-size:.85rem}.panorama-hotspot-editor__selector select{flex:1;max-width:320px;padding:.4rem .6rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.9rem}.panorama-hotspot-editor__tabs{display:flex;gap:.5rem;margin-bottom:1rem}.panorama-hotspot-editor__tab{background:#fff;color:var(--nv-green-dark, #244f30);border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;padding:.45rem .85rem;font-weight:600;cursor:pointer;font-size:.8rem;transition:background .15s,border-color .15s}.panorama-hotspot-editor__tab:hover{background:#e7f3ea}.panorama-hotspot-editor__tab--active{background:var(--nv-green, #2f6b3f);color:#fff;border-color:var(--nv-green, #2f6b3f)}.panorama-hotspot-editor__panel{margin-top:.5rem}.panorama-hotspot-editor__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.panorama-hotspot-editor__toolbar span{font-size:.85rem;color:#5a675b}.panorama-hotspot-editor__add-btn{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.4rem .8rem;font-weight:600;font-size:.8rem;cursor:pointer}.panorama-hotspot-editor__add-btn:hover{background:#256633}.panorama-hotspot-editor__add-btn:disabled{opacity:.5;cursor:not-allowed}.panorama-hotspot-editor__empty{font-size:.85rem;color:#5a675b;margin:0}.panorama-hotspot-editor__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.panorama-hotspot-editor__item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#f8faf8;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.85rem}.panorama-hotspot-editor__item-label{flex:1;font-weight:600;color:var(--nv-green-dark, #244f30)}.panorama-hotspot-editor__item-pos{font-size:.8rem;color:#5a675b}.panorama-hotspot-editor__item-actions{display:flex;gap:.4rem}.panorama-hotspot-editor__item-actions button{background:transparent;border:1px solid var(--nv-border, #c9d2c9);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;cursor:pointer}.panorama-hotspot-editor__item-actions button:hover{background:#e7f3ea}.panorama-hotspot-editor__form{padding:1rem;background:#f8faf8;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.panorama-hotspot-editor__form h3{margin:0 0 .75rem;font-size:1rem;color:var(--nv-green-dark, #244f30)}.panorama-hotspot-editor__field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.panorama-hotspot-editor__field label{font-size:.8rem;font-weight:600;color:#3a4a3b}.panorama-hotspot-editor__field input,.panorama-hotspot-editor__field select,.panorama-hotspot-editor__field textarea{padding:.4rem .6rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.85rem}.panorama-hotspot-editor__typed{border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;padding:.75rem;margin-bottom:.75rem}.panorama-hotspot-editor__typed legend{font-weight:600;font-size:.85rem;color:var(--nv-green-dark, #244f30)}.panorama-hotspot-editor__actions{display:flex;gap:.5rem;margin-top:.75rem}.panorama-hotspot-editor__actions button{padding:.45rem .85rem;border-radius:6px;font-weight:600;font-size:.85rem;cursor:pointer}.panorama-hotspot-editor__actions button[type=submit]{background:var(--nv-green, #2f6b3f);color:#fff;border:none}.panorama-hotspot-editor__actions button[type=submit]:hover{background:#256633}.panorama-hotspot-editor__actions button[type=button]{background:#fff;border:1px solid var(--nv-border, #c9d2c9)}.panorama-hotspot-editor__error{padding:.5rem .75rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;margin-bottom:.75rem;font-size:.85rem}.panorama-hotspot-editor__placer{margin-bottom:.75rem}.panorama-hotspot-editor__placer-hint{margin:0 0 .4rem;font-size:.8rem;color:#5a675b}.panorama-hotspot-editor__transform{border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;padding:.75rem .85rem;margin-bottom:.75rem}.panorama-hotspot-editor__transform legend{font-weight:600;font-size:.85rem;color:var(--nv-green-dark, #244f30);padding:0 .4rem}.panorama-hotspot-editor__transform-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.panorama-hotspot-editor__transform-row label{flex:0 0 110px;font-size:.8rem;font-weight:600;color:#3a4a3b}.panorama-hotspot-editor__transform-row input[type=range]{flex:1}.panorama-hotspot-editor__transform-num{width:64px;padding:.3rem .4rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.8rem}.panorama-hotspot-editor__transform-unit{width:12px;color:#5a675b;font-size:.8rem}.panorama-delete__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;padding:1rem;z-index:100}.panorama-delete__dialog{background:#fff;max-width:460px;width:100%;padding:1.5rem;border-radius:12px;box-shadow:0 12px 40px #00000040}.panorama-delete__title{margin:0 0 .75rem;font-size:1.2rem;color:var(--nv-error, #b3261e)}.panorama-delete__body{margin:0 0 1rem;line-height:1.5}.panorama-delete__cascade{padding:.7rem .85rem;background:#fff3e0;color:#8a4b00;border:1px solid #f0c98c;border-radius:6px;margin-bottom:1rem;font-size:.85rem}.panorama-delete__cascade-heading{margin:0 0 .4rem;font-weight:600}.panorama-delete__cascade-list{margin:0;padding-left:1.25rem;line-height:1.5}.panorama-delete__no-cascade{margin:0 0 1rem;font-size:.85rem;color:#5a675b}.panorama-delete__actions{display:flex;justify-content:flex-end;gap:.5rem}.panorama-delete__cancel{background:#fff;border:1px solid var(--nv-border, #c9d2c9);color:var(--nv-green-dark, #244f30);border-radius:6px;padding:.5rem 1rem;font-weight:600;font-size:.9rem;cursor:pointer}.panorama-delete__cancel:hover{background:#f1f5f1}.panorama-delete__confirm{background:var(--nv-error, #b3261e);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600;font-size:.9rem;cursor:pointer}.panorama-delete__confirm:hover{background:#98201a}.panorama-list-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;list-style:none}.panorama-list-item[data-dragging=true]{box-shadow:0 4px 12px #00000026}.panorama-list-item__drag-handle{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:grab;color:var(--nv-muted, #6b756b);font-size:1.1rem;padding:.25rem .4rem;touch-action:none}.panorama-list-item__drag-handle:active{cursor:grabbing}.panorama-list-item__info{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.panorama-list-item__label{font-weight:600;color:var(--nv-green-dark, #244f30);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panorama-list-item__zone{font-size:.8rem;color:var(--nv-muted, #6b756b)}.panorama-list-item__status{font-size:.75rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}.panorama-list-item__status--processing{background:#fff4d6;color:#8a6100}.panorama-list-item__status--published{background:#e2f3e4;color:#1f6b2e}.panorama-list-item__status--failed{background:#fde2e1;color:#a3221c}.panorama-list-item__actions{display:flex;gap:.4rem}.panorama-list-item__edit,.panorama-list-item__delete{background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;padding:.35rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer}.panorama-list-item__delete{color:#a3221c;border-color:#e7b4b1}.panorama-manager{display:flex;flex-direction:column;gap:.85rem}.panorama-manager__summary{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;padding:.6rem .85rem;background:#f5f8f5;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;font-size:.85rem}.panorama-manager__count{font-weight:600;color:var(--nv-green-dark, #244f30)}.panorama-manager__count--processing{color:#8a6100}.panorama-manager__count--failed{color:#a3221c}.panorama-manager__limit{margin-left:auto;font-weight:600;color:var(--nv-muted, #6b756b)}.panorama-manager__limit--reached{color:#a3221c}.panorama-manager__error{padding:.6rem .85rem;background:#fde2e1;color:#a3221c;border:1px solid #e7b4b1;border-radius:8px;font-size:.85rem}.panorama-manager__empty{margin:0;padding:1rem;color:var(--nv-muted, #6b756b);font-size:.9rem;text-align:center}.panorama-manager__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.panorama-manager__edit-row{padding:.75rem;background:#f9faf9;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.tour-list{display:flex;flex-direction:column;gap:.85rem}.tour-list__header{display:flex;align-items:center;justify-content:space-between}.tour-list__title{margin:0;font-size:1.1rem;color:var(--nv-green-dark, #244f30)}.tour-list__create{display:flex;flex-direction:column;gap:.35rem}.tour-list__create-label{font-size:.85rem;font-weight:600;color:var(--nv-muted, #6b756b)}.tour-list__create-row{display:flex;gap:.5rem}.tour-list__create-input,.tour-list__rename-input{flex:1;padding:.5rem .65rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;font-size:.9rem}.tour-list__create-input[aria-invalid=true],.tour-list__rename-input[aria-invalid=true]{border-color:#a3221c}.tour-list__create-btn,.tour-list__rename-save{padding:.5rem .85rem;background:var(--nv-green-dark, #244f30);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.tour-list__create-btn:disabled,.tour-list__rename-save:disabled{opacity:.6;cursor:default}.tour-list__field-error{margin:0;color:#a3221c;font-size:.8rem}.tour-list__empty{margin:0;padding:1rem;color:var(--nv-muted, #6b756b);font-size:.9rem;text-align:center}.tour-list__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.tour-list__item{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;background:#f9faf9;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px}.tour-list__item--selected{border-color:var(--nv-green-dark, #244f30);background:#f0f6f1}.tour-list__select{flex:1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:0;background:none;border:none;cursor:pointer;text-align:left}.tour-list__name{font-weight:600;color:var(--nv-green-dark, #244f30)}.tour-list__status{font-size:.8rem;font-weight:600}.tour-list__status--draft{color:var(--nv-muted, #6b756b)}.tour-list__status--published{color:#2e7d32}.tour-list__actions,.tour-list__rename-actions{display:flex;gap:.4rem}.tour-list__rename-btn,.tour-list__delete-btn,.tour-list__rename-cancel{padding:.4rem .7rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;font-size:.85rem;cursor:pointer}.tour-list__delete-btn{color:#a3221c;border-color:#e7b4b1}.tour-list__delete-btn:disabled{opacity:.6;cursor:default}.tour-list__rename{display:flex;flex-direction:column;gap:.4rem;width:100%}.narrative-editor{max-width:760px;margin:0 auto;padding:1.5rem}.narrative-editor__form{display:flex;flex-direction:column;gap:1rem}.narrative-editor__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.narrative-editor__heading{margin:0;font-size:1.3rem;color:var(--nv-green-dark, #244f30)}.narrative-editor__count{font-size:.85rem;color:#5a675b}.narrative-editor__chapters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.narrative-editor__chapter{padding:1rem;background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:8px;display:flex;flex-direction:column;gap:.75rem}.narrative-editor__chapter-header{display:flex;align-items:center;justify-content:space-between}.narrative-editor__chapter-header h3{margin:0;font-size:1rem}.narrative-editor__chapter-controls{display:flex;gap:.4rem}.narrative-editor__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;margin-left:.75rem;border-left:2px solid var(--nv-border, #c9d2c9);padding-left:.75rem}.narrative-editor__point{padding:.6rem .75rem;background:#f8faf8;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.narrative-editor__point-header{display:flex;align-items:center;justify-content:space-between}.narrative-editor__point-label{font-size:.85rem;font-weight:600;color:var(--nv-green-dark, #244f30)}.narrative-editor__point-controls{display:flex;gap:.3rem}.narrative-editor__field{display:flex;flex-direction:column;gap:.35rem}.narrative-editor__field label{font-size:.85rem;font-weight:600}.narrative-editor__field input,.narrative-editor__field textarea,.narrative-editor__field select{padding:.5rem .6rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:.95rem}.narrative-editor__field input[aria-invalid=true],.narrative-editor__field textarea[aria-invalid=true],.narrative-editor__field select[aria-invalid=true]{border-color:var(--nv-error, #b3261e)}.narrative-editor__field-error{margin:0;font-size:.8rem;color:var(--nv-error, #b3261e)}.narrative-editor__actions{display:flex;gap:.75rem;justify-content:flex-end}.narrative-editor__add-chapter,.narrative-editor__add-point,.narrative-editor__submit{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600;cursor:pointer}.narrative-editor__add-point{align-self:flex-start;padding:.4rem .75rem;font-size:.85rem}.narrative-editor__add-chapter:disabled,.narrative-editor__add-point:disabled,.narrative-editor__submit:disabled{opacity:.6;cursor:not-allowed}.narrative-editor__error{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px}.narrative-editor__saved{padding:.7rem .85rem;background:#e7f3ea;color:var(--nv-green-dark, #244f30);border:1px solid #bcd9c4;border-radius:6px}.narrative-editor__hint{margin:0;font-size:.8rem;color:#5a675b}.admin-main{padding:1.5rem}.project-manager{max-width:960px;margin:0 auto}.project-manager__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.project-manager__heading{margin:0;font-size:1.3rem;color:var(--nv-green-dark, #244f30)}.project-manager__new,.project-form__submit,.project-delete__confirm{background:var(--nv-green, #2f6b3f);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600;cursor:pointer}.project-manager__search{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.project-manager__search label{font-size:.85rem;font-weight:600}.project-manager__search input{padding:.55rem .7rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:1rem;max-width:360px}.project-manager__error,.project-form__error,.project-delete__error{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error, #b3261e);border:1px solid #f3c1bd;border-radius:6px;font-size:.9rem;margin-bottom:1rem}.project-manager__table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 16px #0000000f}.project-manager__table th,.project-manager__table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--nv-border, #c9d2c9)}.project-manager__sort{background:transparent;border:none;font-weight:700;cursor:pointer;padding:0;color:var(--nv-text, #1b261c)}.project-manager__empty{text-align:center;color:#5b665c;padding:1.5rem}.project-manager__row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.project-manager__row-actions button{border:1px solid var(--nv-border, #c9d2c9);background:#fff;border-radius:6px;padding:.35rem .7rem;cursor:pointer}.project-manager__row-actions .project-manager__delete{color:var(--nv-error, #b3261e);border-color:#f3c1bd}.project-form{background:#fff;max-width:560px;margin:0 auto;padding:1.75rem;border-radius:12px;box-shadow:0 8px 30px #00000014;display:flex;flex-direction:column;gap:1rem}.project-form__title{margin:0;font-size:1.25rem;color:var(--nv-green-dark, #244f30)}.project-form__field{display:flex;flex-direction:column;gap:.35rem}.project-form__field label{font-size:.85rem;font-weight:600}.project-form__field input,.project-form__field textarea{padding:.6rem .7rem;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;font-size:1rem;font-family:inherit}.project-form__field input[aria-invalid=true],.project-form__field textarea[aria-invalid=true]{border-color:var(--nv-error, #b3261e)}.project-form__field-error{margin:0;font-size:.82rem;color:var(--nv-error, #b3261e)}.project-form__actions,.project-delete__actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.project-form__cancel,.project-delete__cancel{background:#fff;border:1px solid var(--nv-border, #c9d2c9);border-radius:6px;padding:.55rem 1rem;cursor:pointer}.project-delete__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;padding:1rem;z-index:100}.project-delete__dialog{background:#fff;max-width:420px;width:100%;padding:1.5rem;border-radius:12px;box-shadow:0 12px 40px #00000040}.project-delete__title{margin:0 0 .75rem;font-size:1.2rem;color:var(--nv-error, #b3261e)}.project-delete__body{margin:0 0 1rem;line-height:1.5}.project-workspace{max-width:960px;margin:0 auto}.project-workspace__toolbar{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem}.project-workspace__back{flex:none}.project-workspace__heading{margin:0}.project-workspace__client{color:#555}.project-workspace__panels{display:grid;gap:2rem}.project-workspace__tabs{display:flex;gap:.25rem;border-bottom:1px solid #d8e0d8;margin:.5rem 0 1rem}.project-workspace__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:.6rem 1rem;font:inherit;font-weight:600;color:#5a675b;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.project-workspace__tab:hover{color:#244f30}.project-workspace__tab--active{color:#244f30;border-bottom-color:#2f6b3f}.panorama-workspace{display:flex;flex-direction:column;gap:1.25rem}.panorama-workspace__intro{display:flex;flex-direction:column;gap:.25rem}.panorama-workspace__heading{margin:0;font-size:1.1rem;color:#244f30}.panorama-workspace__hint{margin:0;color:#5a675b;font-size:.85rem}:root{--nv-green: #2f6b3f;--nv-green-dark: #244f30;--nv-bg: #f4f6f4;--nv-error: #b3261e;--nv-border: #c9d2c9;--nv-text: #1b261c}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--nv-text);background:var(--nv-bg)}.admin-root{min-height:100vh}.admin-root--checking{display:grid;place-items:center;min-height:100vh;color:var(--nv-green-dark)}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--nv-green);color:#fff}.admin-header button{background:transparent;border:1px solid rgba(255,255,255,.7);color:#fff;padding:.4rem .9rem;border-radius:6px;cursor:pointer}.login{display:grid;place-items:center;min-height:100vh;padding:1rem}.login__form{width:100%;max-width:360px;background:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 30px #00000014;display:flex;flex-direction:column;gap:1rem}.login__title{margin:0 0 .5rem;font-size:1.4rem;color:var(--nv-green-dark);text-align:center}.login__field{display:flex;flex-direction:column;gap:.35rem}.login__field label{font-size:.85rem;font-weight:600}.login__field input{padding:.6rem .7rem;border:1px solid var(--nv-border);border-radius:6px;font-size:1rem}.login__field input[aria-invalid=true]{border-color:var(--nv-error)}.login__submit{margin-top:.5rem;padding:.7rem;background:var(--nv-green);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer}.login__submit:disabled{opacity:.6;cursor:not-allowed}.login__error{padding:.7rem .85rem;background:#fce8e6;color:var(--nv-error);border:1px solid #f3c1bd;border-radius:6px;font-size:.9rem}.asset-uploader{display:flex;flex-direction:column;gap:1.25rem;max-width:640px;padding:1.5rem}.asset-uploader__title{margin:0;font-size:1.2rem;color:var(--nv-green-dark)}.asset-field{display:flex;flex-direction:column;gap:.35rem;padding:1rem;background:#fff;border:1px solid var(--nv-border);border-radius:10px}.asset-field__label{font-size:.95rem;font-weight:600}.asset-field__hint{margin:0;font-size:.8rem;color:#5a675b}.asset-field input[type=file]{font-size:.9rem}.asset-field__progress{margin:.25rem 0 0;font-size:.85rem;color:var(--nv-green-dark)}.asset-field__message{margin:.25rem 0 0;font-size:.85rem;border-radius:6px;padding:.5rem .7rem}.asset-field__message--error{background:#fce8e6;color:var(--nv-error);border:1px solid #f3c1bd}.asset-field__message--success{background:#e7f3ea;color:var(--nv-green-dark);border:1px solid #bcd9c4}.asset-field__skipped{margin:.4rem 0 0;padding-left:1.1rem;font-size:.8rem}.asset-status{margin:.5rem 0 0;font-size:.85rem;font-weight:600;border-radius:6px;padding:.5rem .7rem}.asset-status--processing{background:#fff6e0;color:#6b5400;border:1px solid #f0dca0}.asset-status--published{background:#e7f3ea;color:var(--nv-green-dark);border:1px solid #bcd9c4}.asset-status--failed{background:#fce8e6;color:var(--nv-error);border:1px solid #f3c1bd}.panorama-uploader{display:flex;flex-direction:column;gap:.35rem;padding:1rem;background:#fff;border:1px solid var(--nv-border);border-radius:10px;max-width:640px}.panorama-uploader__label{font-size:.95rem;font-weight:600}.panorama-uploader__hint{margin:0;font-size:.8rem;color:#5a675b}.panorama-uploader input[type=file]{font-size:.9rem}.panorama-uploader__progress{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.panorama-uploader__progress-text{font-size:.85rem;color:var(--nv-green-dark)}.panorama-uploader__progress-bar{height:8px;background:#e0e5e0;border-radius:4px;overflow:hidden}.panorama-uploader__progress-fill{height:100%;background:var(--nv-green);border-radius:4px;transition:width .2s ease}.panorama-uploader__cancel{align-self:flex-start;background:transparent;border:1px solid var(--nv-border);color:var(--nv-error);padding:.3rem .8rem;border-radius:6px;font-size:.8rem;cursor:pointer}.panorama-uploader__cancel:hover{background:#fce8e6}.panorama-uploader__errors{margin:.4rem 0 0;padding:.5rem .7rem .5rem 1.6rem;background:#fce8e6;color:var(--nv-error);border:1px solid #f3c1bd;border-radius:6px;font-size:.85rem;list-style:disc}.panorama-uploader__error-item{margin:.15rem 0}.panorama-uploader__message{margin:.25rem 0 0;font-size:.85rem;border-radius:6px;padding:.5rem .7rem}.panorama-uploader__message--error{background:#fce8e6;color:var(--nv-error);border:1px solid #f3c1bd}.panorama-uploader__message--success{background:#e7f3ea;color:var(--nv-green-dark);border:1px solid #bcd9c4}
