/* ===== Window chrome (Yaru) ===== */
#window-layer{position:absolute;inset:0;z-index:100;pointer-events:none}
.window{position:absolute;pointer-events:auto;display:flex;flex-direction:column;
  background:var(--win-bg);border-radius:var(--radius-win);
  box-shadow:var(--shadow-2),0 0 0 1px var(--win-border);
  min-width:280px;min-height:180px;overflow:hidden;
  transition:box-shadow .15s}
.window.unfocused{box-shadow:var(--shadow-1),0 0 0 1px var(--win-border)}
.window.dragging{transition:none;will-change:transform}
.window.resizing{transition:none}
.window.snapping{transition:left .18s ease,top .18s ease,width .18s ease,height .18s ease}
.window.opening{animation:winOpen .24s cubic-bezier(.25,.8,.35,1.05)}
@keyframes winOpen{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
.window.closing{animation:winClose .18s forwards}
@keyframes winClose{to{opacity:0;transform:scale(.9)}}
.window.minimizing{transition:transform .28s cubic-bezier(.4,0,.6,1),opacity .28s}
.window.restoring{transition:transform .26s cubic-bezier(.3,.8,.3,1),opacity .22s}
.window.ws-switching{transition:transform .3s,opacity .3s}

/* overview spread state */
.window.in-overview{transition:transform .3s cubic-bezier(.25,.8,.3,1),opacity .2s;pointer-events:auto;cursor:pointer}
.window.in-overview:hover{filter:brightness(1.06)}
.window.ov-exit{transition:transform .28s cubic-bezier(.3,.7,.3,1),opacity .2s}

.window-header{height:46px;flex:none;display:flex;align-items:center;position:relative;
  background:var(--header-bg);border-bottom:1px solid var(--win-border);
  padding:0 8px;color:var(--win-fg);touch-action:none}
.window.unfocused .window-header{background:var(--header-bg-unfocused);color:var(--win-fg-dim)}
.window-header .wh-left{display:flex;align-items:center;gap:4px;min-width:70px}
.window-header .wh-title{position:absolute;left:60px;right:60px;text-align:center;font-size:14px;
  font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}
.window-header .wh-title .sub{font-weight:400;color:var(--win-fg-dim);font-size:12px;margin-left:8px}
.window-header .wh-right{margin-left:auto;display:flex;align-items:center;gap:4px}
.window-header .wh-app-icon{width:22px;height:22px;margin-right:2px;flex:none}
.window-header .wh-app-icon svg{width:22px;height:22px}
.window-header .hd-btn{height:30px;padding:0 11px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:500}
.window-header .hd-btn:hover{background:rgba(0,0,0,.08)}
html.dark .window-header .hd-btn:hover{background:rgba(255,255,255,.09)}
.window-header .hd-btn:active{background:rgba(0,0,0,.14)}
.window-header .hd-btn.suggested{background:var(--accent);color:var(--accent-fg)}
.window-header .hd-btn.suggested:hover{background:color-mix(in srgb,var(--accent) 88%,#fff)}
.window-header .hd-btn:disabled{opacity:.4;pointer-events:none}
.window-header .hd-btn svg{width:16px;height:16px}
.window-header .hd-btn.toggled{background:var(--accent-soft);color:var(--accent)}
.window-header .hd-sep{width:1px;height:22px;background:var(--win-border);margin:0 4px}

/* Yaru circular window controls */
.win-controls{display:flex;align-items:center;gap:7px;padding-left:6px}
.win-btn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.07);color:var(--win-fg);transition:background .12s,transform .1s}
html.dark .win-btn{background:rgba(255,255,255,.09)}
.win-btn svg{width:11px;height:11px;opacity:.9}
.win-btn:active{transform:scale(.9)}
.win-btn.min:hover{background:rgba(0,0,0,.16)}
.win-btn.max:hover{background:rgba(0,0,0,.16)}
html.dark .win-btn.min:hover,html.dark .win-btn.max:hover{background:rgba(255,255,255,.2)}
.win-btn.close{background:var(--accent);color:#fff}
.win-btn.close svg{opacity:1}
.win-btn.close:hover{background:#f74b16;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.window.unfocused .win-btn.close{background:rgba(0,0,0,.12);color:var(--win-fg-dim)}
html.dark .window.unfocused .win-btn.close{background:rgba(255,255,255,.12)}

.window-body{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column;
  background:var(--win-bg);color:var(--win-fg);border-radius:0 0 var(--radius-win) var(--radius-win)}
.window-body>*{min-height:0}
.window.full-radius .window-body{border-radius:var(--radius-win)}

/* resize handles */
.win-resize{position:absolute;z-index:20;touch-action:none}
.win-resize.n{top:-4px;left:10px;right:10px;height:8px;cursor:ns-resize}
.win-resize.s{bottom:-4px;left:10px;right:10px;height:8px;cursor:ns-resize}
.win-resize.e{right:-4px;top:10px;bottom:10px;width:8px;cursor:ew-resize}
.win-resize.w{left:-4px;top:10px;bottom:10px;width:8px;cursor:ew-resize}
.win-resize.ne{top:-5px;right:-5px;width:12px;height:12px;cursor:nesw-resize}
.win-resize.nw{top:-5px;left:-5px;width:12px;height:12px;cursor:nesw-resize}
.win-resize.se{bottom:-5px;right:-5px;width:12px;height:12px;cursor:nwse-resize}
.win-resize.sw{bottom:-5px;left:-5px;width:12px;height:12px;cursor:nwse-resize}

/* snap preview */
#snap-preview{position:absolute;z-index:90;background:var(--accent-soft);
  border:2px solid var(--accent);border-radius:14px;pointer-events:none;opacity:0;
  transition:opacity .15s,left .18s,top .18s,width .18s,height .18s}
#snap-preview.show{opacity:1}

/* alt-tab switcher */
.alttab{position:fixed;left:50%;top:44%;transform:translate(-50%,-50%);z-index:8000;
  background:rgba(28,28,28,.94);border:1px solid rgba(255,255,255,.12);border-radius:16px;
  padding:16px 18px;display:flex;gap:8px;box-shadow:var(--shadow-2);animation:dlgIn .12s}
.alttab .at-item{width:104px;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:12px 8px;border-radius:12px}
.alttab .at-item.sel{background:rgba(255,255,255,.14)}
.alttab .at-item .ic{width:48px;height:48px}
.alttab .at-item .ic svg{width:48px;height:48px}
.alttab .at-item .nm{font-size:11.5px;color:#fff;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* window ghost while drag-moving (subtle) */
.window .win-menu-bar{display:flex;align-items:center;gap:2px;padding:0 8px;height:30px;flex:none;
  border-bottom:1px solid var(--win-border);background:var(--win-bg-2);font-size:13px}
.window .win-menu-bar .mb{padding:4px 10px;border-radius:5px}
.window .win-menu-bar .mb:hover{background:rgba(0,0,0,.07)}
html.dark .window .win-menu-bar .mb:hover{background:rgba(255,255,255,.09)}

/* busy cursor */
.busy-cursor,.busy-cursor *{cursor:progress!important}
