/* ===== 창 크기 조절 손잡이 ===== */
.win-resize { position: absolute; z-index: 5; }
.win-resize-n  { top: 0; left: 10px; right: 10px; height: 5px; cursor: n-resize; }
.win-resize-s  { bottom: 0; left: 10px; right: 10px; height: 5px; cursor: s-resize; }
.win-resize-e  { right: 0; top: 10px; bottom: 10px; width: 5px; cursor: e-resize; }
.win-resize-w  { left: 0; top: 10px; bottom: 10px; width: 5px; cursor: w-resize; }
.win-resize-ne { top: 0; right: 0; width: 12px; height: 12px; cursor: ne-resize; }
.win-resize-nw { top: 0; left: 0; width: 12px; height: 12px; cursor: nw-resize; }
.win-resize-se { bottom: 0; right: 0; width: 12px; height: 12px; cursor: se-resize; }
.win-resize-sw { bottom: 0; left: 0; width: 12px; height: 12px; cursor: sw-resize; }
.win.is-maximized .win-resize { display: none; }
.win.is-resizing, .win.is-dragging { transition: none; }
.win.is-resizing iframe, .win.is-dragging iframe { pointer-events: none; }
.win.is-snapped { border-radius: 0; }

/* 창 안의 앱이 창 크기를 기준으로 배치를 바꿀 수 있게 (컨테이너 쿼리) */
.win-body { container-type: inline-size; container-name: win; }

/* ===== 스냅 미리보기 ===== */
.win-snap-preview {
  position: absolute;
  z-index: 99999;
  pointer-events: none;
  border-radius: 8px;
  background: rgba(0, 103, 192, 0.18);
  border: 1px solid rgba(0, 103, 192, 0.5);
  box-sizing: border-box;
  margin: 4px;
  animation: snap-in 120ms ease-out;
}
html[data-shell="mac"] .win-snap-preview { background: rgba(0, 0, 0, 0.14); border-color: rgba(0, 0, 0, 0.25); border-radius: 10px; }
@keyframes snap-in { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: none; } }

/* ===== 스냅 레이아웃 팝업 (Windows 11) ===== */
.win-popup { position: absolute; pointer-events: auto; }
.win-popup-windows {
  display: grid;
  grid-template-columns: repeat(3, 72px);
  gap: 8px;
  padding: 10px;
  background: rgba(243, 243, 243, 0.96);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}
.win-snap-layout { position: relative; width: 72px; height: 44px; }
.win-snap-cell {
  position: absolute;
  box-sizing: border-box;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 3px;
  background: rgba(0, 0, 0, 0.06);
  padding: 0;
  margin: 0;
  transform: scale(0.94);
}
.win-snap-cell:hover { background: var(--win-accent, #0067c0); border-color: var(--win-accent, #0067c0); }

/* ===== 녹색 단추 메뉴 (mac) ===== */
.win-popup-mac {
  display: flex;
  flex-direction: column;
  min-width: 190px;
  padding: 5px;
  background: rgba(246, 246, 246, 0.96);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  font-size: 13px;
}
.win-popup-item { display: flex; align-items: center; gap: 10px; height: 26px; padding: 0 8px; border: none; border-radius: 5px; background: transparent; text-align: left; font: inherit; color: #1d1d1f; }
.win-popup-item:hover { background: #007aff; color: #fff; }
.win-popup-glyph { width: 18px; height: 12px; border: 1.5px solid currentColor; border-radius: 2px; box-sizing: border-box; position: relative; }
.win-popup-glyph[data-zone="left"]::before, .win-popup-glyph[data-zone="right"]::before { content: ""; position: absolute; top: 1px; bottom: 1px; width: 6px; background: currentColor; border-radius: 1px; }
.win-popup-glyph[data-zone="left"]::before { left: 1px; }
.win-popup-glyph[data-zone="right"]::before { right: 1px; }
.win-popup-glyph[data-zone="max"]::before { content: ""; position: absolute; inset: 1px; background: currentColor; border-radius: 1px; }

/* 앱 안 배치(창 너비 기준 컨테이너 쿼리)는 앱 CSS 보다 뒤에 읽혀야 해서 responsive.css 끝에 있다 */
