/* Wir polarny – PRO UI (Projekt nr 1) */

:root{
  --wir-gap: 14px;
  --wir-panel-w: 360px;
  --wir-panel-w-collapsed: 54px;
}

/* full-screen layout without page scroll */
.wir-page{
  padding: 10px;
  height: calc(100vh - var(--topbar-h, 72px));
  overflow: hidden;
}

.wir-app{
  height: 100%;
  display: grid;
  grid-template-columns: 1fr var(--wir-panel-w);
  gap: var(--wir-gap);
  align-items: stretch;
}

/* Stage */
.wir-stage{
  position: relative;
  height: 100%;
  min-height: 520px;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(2,6,14,.35);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.wir-stage:before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(1200px 700px at 30% 20%, rgba(80,150,255,.10), transparent 60%),
              radial-gradient(900px 600px at 70% 30%, rgba(0,0,0,.28), transparent 55%);
  pointer-events:none;
}
.wir-scene{ position:absolute; inset:0; z-index:1; }
.wir-scene canvas{ width:100% !important; height:100% !important; display:block; }
#scene{ touch-action:none; }

/* 2D NOAA canvas */
.wir-canvas2d{
  position:absolute; inset:0;
  width:100%;
  height:100%;
  display:none;
  z-index:2;
}
.wir-stage.is-2d #scene{ display:none; }
.wir-stage.is-2d .wir-canvas2d{ display:block; }

/* Panel (right) */
.wir-panel{
  background: rgba(10,16,28,.78);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
  padding: 14px;
  height: 100%;
  overflow: auto;
  scrollbar-width: thin;
}

.wir-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.wir-head-left{min-width:0}
.wir-title{font-size:20px;font-weight:800;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wir-badge{display:inline-block;margin-left:8px;font-size:12px;padding:2px 8px;border-radius:999px;background:rgba(255,180,0,.14);border:1px solid rgba(255,180,0,.35);color:#ffcc4d}
.wir-sub{margin-top:4px;font-size:12px;color:rgba(255,255,255,.75)}

.wir-head-actions{display:flex;gap:10px;align-items:center}
.wir-json{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  text-decoration:none;
  padding:8px 10px;border-radius:12px;
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.12);
  color:#9fd3ff;font-weight:700;font-size:12px;line-height:14px;
}
.wir-json:hover{filter:brightness(1.08)}

.wir-collapse{
  width: 38px;
  height: 36px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
  color: rgba(255,255,255,.92);
  cursor: pointer;
  font-weight: 900;
}
.wir-collapse:hover{filter:brightness(1.08)}

/* Info card */
.wir-info{
  margin-top: 10px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
}
.wir-info-title{font-weight: 700;margin-bottom: 6px}
.wir-info-text{color: rgba(255,255,255,.82);line-height: 1.35;font-size: 13.5px;margin: 0 0 8px 0}

/* Controls */
.wir-row{margin:12px 0}
.wir-row--time{display:flex;align-items:center;gap:10px}
.wir-btn{width:40px;height:36px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:#fff;font-weight:800;cursor:pointer}
.wir-btn:hover{filter:brightness(1.08)}
.wir-time{flex:1}
.wir-label{min-width:110px;text-align:right;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.86);font-size:12px}

.wir-row--checks{display:flex;flex-wrap:wrap;gap:10px 12px}
.wir-chk{display:flex;gap:8px;align-items:center;font-size:12px;color:rgba(255,255,255,.9);user-select:none}
.wir-chk input{accent-color:#57a7ff}

.wir-row--sliders{display:grid;grid-template-columns:1fr;gap:12px}
.wir-rng{display:grid;grid-template-columns:1fr;gap:6px;font-size:12px;color:rgba(255,255,255,.9)}
.wir-rng input{width:100%}

.wir-foot{margin-top:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.wir-muted{font-size:12px;color:rgba(255,255,255,.65)}
.wir-status{font-size:12px;color:#ffcc4d}

/* Loading overlay */
.wir-loading{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  z-index: 5;
  background: rgba(0,0,0,.30);
  backdrop-filter: blur(6px);
}
.wir-loading-card{
  display:flex; gap:12px; align-items:center;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(10,16,28,.78);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
  max-width: 520px;
}
.wir-spinner{
  width: 22px; height: 22px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.22);
  border-top-color: rgba(255,255,255,.90);
  animation: wirSpin 1s linear infinite;
}
@keyframes wirSpin{to{transform:rotate(360deg)}}
.wir-loading-title{ font-weight: 700; }
.wir-loading-sub{ color: rgba(255,255,255,.78); font-size: 12.5px; margin-top:2px; }

/* Collapsed panel (desktop) */
@media (min-width: 981px){
  .wir-panel.is-collapsed{
    width: var(--wir-panel-w-collapsed);
    padding: 10px 8px;
    overflow: hidden;
  }
  .wir-panel.is-collapsed .wir-head-left,
  .wir-panel.is-collapsed .wir-panel-body{
    display:none;
  }
  .wir-panel.is-collapsed .wir-head-actions{
    flex-direction: column;
    gap: 8px;
  }
  .wir-panel.is-collapsed .wir-collapse{
    transform: rotate(180deg);
  }
  .wir-panel.is-collapsed .wir-json{
    padding: 8px 8px;
  }
  .wir-app.has-collapsed{
    grid-template-columns: 1fr var(--wir-panel-w-collapsed);
  }
}

/* Mobile: bottom sheet panel */
@media (max-width: 980px){
  .wir-page{ padding: 0; }
  .wir-app{
    grid-template-columns: 1fr;
    gap: 0;
  }
  .wir-stage{
    height: calc(100vh - var(--topbar-h,72px) - 44vh);
    min-height: 320px;
    border-radius: 0;
    border-left: none;
    border-right:none;
  }
  .wir-panel{
    position: fixed;
    left: 0; right: 0; bottom: 0;
    width: 100%;
    max-height: 44vh;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -18px 60px rgba(0,0,0,.55);
    z-index: 20;
    border: 1px solid rgba(255,255,255,.10);
  }
}
