/* نمای مزرعه (SVG ایزومتریک) */
.scene-wrap { position: relative; background: var(--sc-ground); border: 1px solid var(--line); border-radius: var(--r-card); overflow-x: auto; overflow-y: hidden; }
.scene-wrap > svg { display: block; width: 100%; min-width: 640px; height: auto; }
.scene-wrap svg text { font-family: var(--font); }
.sc-hit { cursor: pointer; outline: none; }
.sc-hit:hover .sc-face, .sc-hit:focus-visible .sc-face { filter: brightness(1.06); }
.sc-hit:focus-visible .sc-outline { stroke: var(--focus); stroke-width: 3; }
.sc-label { font-size: 13px; fill: var(--ink); font-weight: 700; }
.sc-label-sub { font-size: 11.5px; fill: var(--ink-2); font-weight: 500; }
.sc-badge { font-size: 13px; font-weight: 800; fill: var(--ink-inverse); }
.sc-alert-ring { stroke: var(--critical); stroke-width: 3; fill: none; animation: scpulse 2s ease-in-out infinite; }
@keyframes scpulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.sc-draw { stroke-dasharray: 2400; stroke-dashoffset: 2400; animation: scdraw .9s ease-out forwards; }
@keyframes scdraw { to { stroke-dashoffset: 0; } }
.sc-fade { opacity: 0; animation: scfade .5s .45s ease-out forwards; }
@keyframes scfade { to { opacity: 1; } }
.scene-tip { position: absolute; z-index: 5; pointer-events: none; background: var(--bg-panel); border: 1px solid var(--line); border-radius: var(--r-ctl); box-shadow: var(--shadow-float); padding: 8px 12px; font-size: 12px; min-width: 180px; display: none; }
.scene-tip .st-h { font-weight: 700; margin-bottom: 4px; }
.scene-tip .st-r { display: flex; justify-content: space-between; gap: 12px; color: var(--ink-2); }
.scene-tip .st-r b { color: var(--ink); font-variant-numeric: tabular-nums; }
.scene-legend { position: sticky; right: 0; margin: 0 12px 10px; width: max-content; max-width: calc(100% - 24px); display: flex; gap: 10px; flex-wrap: wrap; background: var(--sc-label-bg); border-radius: var(--r-ctl); padding: 6px 10px; font-size: 11px; color: var(--ink-2); }
.scene-legend span { display: inline-flex; align-items: center; gap: 4px; }
.scene-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.scene-weather { position: absolute; top: 10px; left: 12px; width: max-content; background: var(--sc-label-bg); border-radius: var(--r-pill); padding: 4px 12px; font-size: 12px; color: var(--ink-2); display: inline-flex; gap: 6px; align-items: center; }
@media print { .scene-wrap svg *, .sc-alert-ring { animation: none !important; stroke-dashoffset: 0 !important; opacity: 1 !important; } .scene-wrap { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
