.win {
  position: absolute;
  display: flex;
  flex-direction: column;
  min-width: 300px;
  min-height: 160px;
  padding: 0;
  background: var(--win-bg);
  border-radius: var(--radius-lg);
  box-shadow: 0 0 0 1px var(--win-line), 0 0 0 1px var(--glass-hi-soft) inset, var(--shadow-win);
  animation: win-in 0.26s var(--ease-out);
  transition: box-shadow .2s var(--ease-out);
}
.win[hidden], .win.min { display: none; }
.win:focus { outline: 0; }
/* Entrata e uscita partono dall'icona o dal pulsante nella barra (origine impostata da wm.js) */
@keyframes win-in {
  from { opacity: 0; transform: scale(0.82); }
  to { opacity: 1; transform: none; }
}
@keyframes win-out {
  to { opacity: 0; transform: scale(0.92); }
}
@keyframes win-min {
  to { opacity: 0; transform: scale(0.18); }
}
.win.closing { animation: win-out 0.14s ease-out forwards; pointer-events: none; }
.win.minimizing { animation: win-min 0.2s var(--ease-move) forwards; pointer-events: none; }
/* Ingrandisci / ripristina: la finestra si allarga invece di saltare */
.win.morph { transition: left .26s var(--ease-move), top .26s var(--ease-move), width .26s var(--ease-move), height .26s var(--ease-move), border-radius .26s var(--ease-move), box-shadow .2s var(--ease-out); }

.win-title {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  height: 46px;
  padding: 0 8px 0 14px;
  overflow: hidden;
  flex-shrink: 0;
  color: var(--ink-hi);
  font: 700 13.5px var(--ui);
  background: linear-gradient(180deg, rgba(167, 139, 250, 0.16), rgba(124, 58, 237, 0.06));
  border-bottom: 1px solid var(--win-line);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  transition: background .2s var(--ease-out), color .2s var(--ease-out);
  cursor: default;
  user-select: none;
  touch-action: none;
}
.win-title svg.win-ico { position: relative; flex-shrink: 0; width: 19px; height: 19px; filter: drop-shadow(0 0 6px rgba(167, 139, 250, 0.5)); }
.win-title h2 { position: relative; }
.win-title .win-btns { position: relative; }
.win-title h2 {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  font: inherit;
  letter-spacing: -.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Finestra non attiva: titolo spento */
.win:not(.active) .win-title { background: var(--fill-1); color: var(--win-muted); }
.win:not(.active) { box-shadow: 0 0 0 1px var(--win-line), var(--shadow-win-off); }

.win-btns { display: flex; gap: 6px; }
.win-btn {
  position: relative;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  padding: 0;
  overflow: hidden;
  color: var(--win-text);
  background: var(--fill-2);
  border: 1px solid var(--win-line);
  border-radius: 50%;
  cursor: pointer;
  transition: background .16s var(--ease), border-color .16s var(--ease), transform .12s var(--ease-out);
}
.win-btn svg { position: relative; width: 11px; height: 11px; pointer-events: none; }
.win-btn:hover { background: rgba(167, 139, 250, 0.22); border-color: var(--glass-edge); transform: translateY(-1px); }
.win-btn:active { transform: scale(0.92); filter: brightness(0.92); }
.win-btn:focus-visible { outline: 2px solid var(--v400); outline-offset: 1px; }
.win-btn.close:hover { background: rgba(244, 63, 94, 0.28); border-color: #f43f5e; color: #fecdd3; }

.win-body {
  flex: 1;
  min-height: 0;
  padding: 18px 20px 20px;
  overflow: auto;
  color: var(--win-text);
  font: 14px/1.55 var(--ui);
  background: var(--win-bg);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.win-grip {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 16px;
  height: 16px;
  cursor: nwse-resize;
  touch-action: none;
  background:
    linear-gradient(135deg, transparent 55%, rgba(255, 255, 255, 0.28) 55% 62%, transparent 62% 72%, rgba(255, 255, 255, 0.28) 72% 79%, transparent 79%);
}

.win.max {
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 0;
}
.win.max .win-title, .win.max .win-body { border-radius: 0; }
.win.max .win-grip { display: none; }

/* Mobile: ogni finestra occupa tutto lo schermo sopra la taskbar */
@media (max-width: 719px) {
  .win {
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    border-radius: 0;
    padding: 0;
  }
  .win-title { height: 50px; border-radius: 0; font-size: 15px; }
  .win-btn { width: 36px; height: 36px; }
  .win-btn.min, .win-btn.maxbtn { display: none; }
  .win-grip { display: none; }
  .win-body { border-radius: 0; padding: 16px; }
}

@media (hover: none) { .win-btn:hover { transform: none; } }
/* Con meno movimento: solo dissolvenza, niente scala */
@media (prefers-reduced-motion: reduce) {
  .win { animation: win-fade 0.15s linear; }
  .win.closing, .win.minimizing { animation: win-fade-out 0.1s linear forwards; }
  .win.morph { transition: none; }
}
@keyframes win-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes win-fade-out { to { opacity: 0; } }

/* Icona del pulsante ingrandisci: cambia quando la finestra e' massimizzata */
.win.max .win-btn .g-max { display: none; }
.win.max .win-btn .g-rest { display: inline !important; }
