/* panorama-viewer.css — theme tokens are --ink / --line (not --text / --border) */
.pano-overlay{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;background:color-mix(in oklch,var(--bg,#0b0b0c) 72%,transparent);backdrop-filter:blur(6px);animation:pano-in .16s ease-out}
@keyframes pano-in{from{opacity:0}to{opacity:1}}
.pano-dialog{width:min(1280px,94vw);height:min(800px,90vh);display:grid;grid-template-rows:auto 1fr auto;background:var(--panel,#17171a);border:1px solid var(--line,#2a2a2f);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55);color:var(--ink,#1c1918);font:13px/1.4 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.pano-dialog:fullscreen{width:100vw;height:100vh;border-radius:0}
.pano-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line,#2a2a2f)}
.pano-title{display:flex;align-items:center;gap:10px;min-width:0}
.pano-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;color:var(--ink,#1c1918)}
.pano-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid currentColor;flex:none}
.pano-badge.is-full{color:var(--primary,oklch(.5 .23 24))}
.pano-badge.is-partial{color:var(--ink-soft,#3a3331)}
.pano-header-actions{display:flex;gap:6px;flex:none}
.pano-icon{width:30px;height:30px;border-radius:8px;border:1px solid var(--line-strong,#6b6562);background:var(--panel-raised,#1f1f23);color:var(--ink,#1c1918);cursor:pointer}
.pano-icon:hover{background:var(--surface-hover,#2a2a30)}
.pano-stage{position:relative;min-height:0;background:#000;cursor:grab;touch-action:none}
.pano-stage:active{cursor:grabbing}
.pano-stage canvas{display:block}
.pano-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;pointer-events:none;transition:opacity .4s}
.pano-hint.is-hidden{opacity:0}
.pano-hud{position:absolute;right:12px;top:10px;font:11px ui-monospace,monospace;color:#fff;background:rgba(0,0,0,.62);padding:3px 8px;border-radius:6px;pointer-events:none}
.pano-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--line,#2a2a2f)}
.pano-toggle,.pano-range{display:inline-flex;align-items:center;gap:6px;color:var(--ink,#1c1918);white-space:nowrap}
.pano-range input{width:110px;accent-color:var(--primary,oklch(.5 .23 24))}
.pano-toggle input{accent-color:var(--primary,oklch(.5 .23 24))}
.pano-range output{min-width:34px;color:var(--ink,#1c1918);font-variant-numeric:tabular-nums}
.pano-spacer{flex:1}
.pano-btn{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line-strong,#6b6562);background:var(--panel-raised,#f4f1f0);color:var(--ink,#1c1918);cursor:pointer;font-weight:600}
.pano-btn:hover{background:var(--surface-hover,#2a2a30)}
.pano-btn:disabled{opacity:.6;cursor:progress}
.pano-btn.is-primary{background:var(--primary,oklch(.5 .23 24));border-color:transparent;color:var(--primary-ink,#fff)}
.pano-btn small{display:block;opacity:.85;font-size:10px;font-weight:500}
