#virtualset-app { overflow: auto; background: #f4f6f7; color: #172126; }
html body[data-active-view="virtualset-app"] > #virtualset-app {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: calc(100vh - 58px) !important;
  overflow: auto !important;
  flex: 1 1 auto !important;
  padding: 0 !important;
  margin: 0 !important;
}
.vs-shell { min-height: 100%; padding: 22px; }
.vs-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; align-items: center; padding: 22px 0; border-bottom: 1px solid #cfd8dc; }
.vs-kicker { color: #35645b; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.vs-hero h1 { margin: 4px 0 8px; font-size: 2rem; letter-spacing: 0; }
.vs-hero p { margin: 0; max-width: 760px; color: #536168; line-height: 1.55; }
.vs-btn { min-height: 40px; border: 1px solid #9fb1ae; border-radius: 6px; background: #fff; color: #18302c; padding: 8px 13px; font-weight: 800; cursor: pointer; }
.vs-btn.primary { border-color: #1f695c; background: #1f695c; color: #fff; }
.vs-btn:hover { filter: brightness(.97); }
.vs-intel { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 18px 0; }
.vs-intel article { border-left: 3px solid #4b7c73; background: #fff; padding: 13px 15px; box-shadow: 0 1px 3px rgba(20,38,35,.08); }
.vs-intel span,.vs-set-meta span { display: block; color: #66757b; font-size: .72rem; }
.vs-intel strong { display: block; margin-top: 4px; font-size: 1.15rem; }
.vs-section-head { display: flex; justify-content: space-between; gap: 12px; align-items: end; padding: 12px 0; }
.vs-section-head h2 { margin: 0; font-size: 1.15rem; }
.vs-section-head p { margin: 4px 0 0; color: #66757b; font-size: .82rem; }
.vs-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(270px,1fr)); gap: 14px; }
.vs-set-card { background: #fff; border: 1px solid #d5dddf; border-radius: 8px; overflow: hidden; box-shadow: 0 3px 12px rgba(24,40,46,.06); }
.vs-set-preview { min-height: 132px; display: grid; place-items: center; background: linear-gradient(135deg,#23363a,#425d60); color: #dce8e6; }
.vs-set-preview strong { font-size: 2rem; }
.vs-set-body { padding: 14px; }
.vs-set-body h3 { margin: 0 0 9px; font-size: 1rem; }
.vs-set-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vs-set-meta strong { font-size: .78rem; overflow-wrap: anywhere; }
.vs-card-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.vs-empty { border: 1px dashed #9fb1ae; padding: 34px 18px; text-align: center; color: #536168; background: rgba(255,255,255,.55); }
.vs-modal-wrap { position: fixed; inset: 0; z-index: 99020; display: grid; place-items: center; padding: 18px; background: rgba(9,18,20,.62); }
.vs-modal { width: min(620px,100%); max-height: min(780px,92vh); overflow: auto; background: #fff; border-radius: 8px; box-shadow: 0 22px 70px rgba(0,0,0,.35); }
.vs-modal-head,.vs-modal-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px; border-bottom:1px solid #d9e0e2; }
.vs-modal-head h2 { margin:0; font-size:1.15rem; }
.vs-modal-body { display:grid; gap:13px; padding:18px; }
.vs-field { display:grid; gap:6px; }
.vs-field span { font-size:.72rem; font-weight:900; color:#415158; text-transform:uppercase; }
.vs-field input,.vs-field select { min-height:42px; border:1px solid #acb9bd; border-radius:6px; padding:8px 10px; font:inherit; min-width:0; }
.vs-source { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.vs-source label { border:1px solid #bac6c8; border-radius:6px; padding:11px; cursor:pointer; font-weight:800; font-size:.8rem; }
.vs-source label:has(input:checked) { border-color:#1f695c; box-shadow:inset 0 0 0 1px #1f695c; background:#edf6f4; }
.vs-source input { margin-right:5px; }
.vs-help { color:#66757b; font-size:.76rem; line-height:1.45; }
.vs-modal-actions { justify-content:flex-end; border-top:1px solid #d9e0e2; border-bottom:0; }
@media(max-width:700px){
  .vs-shell{padding:12px 12px 86px}.vs-hero{grid-template-columns:1fr;padding:14px 0}.vs-hero h1{font-size:1.45rem}.vs-hero .vs-btn{width:100%}
  .vs-intel{grid-template-columns:1fr 1fr;gap:8px}.vs-intel article:last-child{grid-column:1/-1}.vs-grid{grid-template-columns:1fr}
  .vs-source{grid-template-columns:1fr}.vs-modal-wrap{align-items:end;padding:0}.vs-modal{border-radius:8px 8px 0 0;max-height:92vh;width:100%}
}
