/* ===== Simulated Windows desktop ===== */
.vm{position:relative;width:100%;height:100%;overflow:hidden;font-family:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;font-size:12px;color:#1b1b1b;user-select:none;-webkit-user-select:none;cursor:default;line-height:1.35}
.vm *{box-sizing:border-box}
.vm input,.vm select,.vm textarea,.vm button{font:inherit;color:inherit}
.vm .grow{flex:1}
.vm .hidden{display:none!important}
.ico{display:inline-flex;align-items:center;justify-content:center;flex:none}
.ico svg{display:block}
.desk{position:absolute;inset:0 0 48px 0;overflow:hidden}
.skin-win11 .desk{background:
  radial-gradient(ellipse 38% 60% at 50% 108%,#1c66d8 0,#1c66d800 70%),
  radial-gradient(ellipse 30% 75% at 38% 100%,#58b4ff 0,#58b4ff00 72%),
  radial-gradient(ellipse 30% 75% at 62% 100%,#3d8fff 0,#3d8fff00 72%),
  radial-gradient(ellipse 26% 62% at 26% 104%,#0b3fae 0,#0b3fae00 75%),
  radial-gradient(ellipse 26% 62% at 74% 104%,#0d49c4 0,#0d49c400 75%),
  radial-gradient(ellipse 90% 80% at 50% 110%,#7cc4ff 0,#7cc4ff00 60%),
  linear-gradient(180deg,#bcdcf7 0,#a9d2f5 45%,#8fc3f2 100%)}
.skin-server .desk{inset:0 0 40px 0;background:radial-gradient(ellipse 70% 90% at 72% 45%,#1583d8 0,#0a5cab 45%,#063e7c 100%)}
.srvmark{position:absolute;right:14px;bottom:10px;color:#fff;text-align:right;font-size:12px;opacity:.9;pointer-events:none}
.srvmark b{font-weight:400;font-size:13px}
.dicons{position:absolute;inset:6px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;gap:4px}
.dicon{width:76px;padding:5px 2px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid transparent;border-radius:3px;text-align:center}
.dicon:hover{background:#ffffff26}
.dicon.sel{background:#ffffff40;border-color:#ffffff66}
.dicon label{color:#fff;font-size:12px;text-shadow:0 1px 2px #000,0 0 4px #000a;line-height:1.2;word-break:break-word;pointer-events:none}

/* ---- taskbar ---- */
.taskbar{position:absolute;left:0;right:0;bottom:0;height:48px;display:flex;align-items:center;z-index:9000}
.skin-win11 .taskbar{background:#eef3f9d9;backdrop-filter:blur(30px) saturate(1.6);border-top:1px solid #ffffff80}
.skin-server .taskbar{height:40px;background:#101a2be6;color:#fff}
.tb-left{flex:1}
.skin-win11 .tb-center{display:flex;gap:4px;align-items:center}
.skin-win11 .tb-tray{flex:1;justify-content:flex-end}
.skin-server .tb-center{display:flex;align-items:stretch;height:100%}
.tb-btn{width:40px;height:40px;border-radius:4px;display:flex;align-items:center;justify-content:center;position:relative}
.skin-win11 .tb-btn:hover{background:#ffffffb3;box-shadow:0 0 0 1px #0000000d}
.skin-win11 .tb-btn.act{background:#ffffffcc;box-shadow:0 0 0 1px #00000012}
.skin-win11 .tb-app.run::after{content:"";position:absolute;bottom:1px;left:50%;width:6px;height:3px;margin-left:-3px;border-radius:2px;background:#8a8f98}
.skin-win11 .tb-app.act::after{width:16px;margin-left:-8px;background:#0067c0}
.skin-server .tb-btn{width:48px;height:40px;border-radius:0}
.skin-server .tb-btn:hover{background:#ffffff1f}
.skin-server .tb-app.run::after{content:"";position:absolute;bottom:0;left:4px;right:4px;height:2px;background:#76b9ed}
.skin-server .tb-app.act{background:#ffffff26}
.skin-server .tb-app.act::after{left:0;right:0}
.skin-server .tb-start:hover svg path{fill:#76b9ed}
.tb-search{height:32px;width:170px;border-radius:16px;background:#ffffffb0;border:1px solid #0000001a;display:flex;align-items:center;gap:8px;padding:0 12px;color:#444;font-size:13px}
.tb-tray{display:flex;align-items:center;gap:2px;padding-right:8px;height:100%}
.tb-ti,.tb-chev{width:26px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}
.tb-chev{font-size:13px;padding-top:6px}
.tb-clock{text-align:right;font-size:11.5px;line-height:1.3;padding:3px 8px;border-radius:4px}
.skin-win11 .tb-clock:hover,.skin-win11 .tb-ti:hover,.skin-win11 .tb-chev:hover{background:#ffffffa0}
.skin-server .tb-clock:hover,.skin-server .tb-ti:hover{background:#ffffff1f}

/* ---- start menu ---- */
.startmenu{position:absolute;z-index:9500}
.skin-win11 .startmenu{left:50%;bottom:58px;width:560px;margin-left:-280px;height:560px;max-height:calc(100% - 70px);border-radius:8px;background:#f3f6fbee;backdrop-filter:blur(40px);box-shadow:0 12px 40px #0006,0 0 0 1px #0000001f;display:flex;flex-direction:column;padding:24px 28px 0}
.st-search{height:34px;border-radius:17px;border:1px solid #d0d5dc;border-bottom-color:#0067c0;background:#fff;display:flex;align-items:center;gap:10px;padding:0 14px;color:#666;font-size:13px}
.st-head{display:flex;justify-content:space-between;align-items:center;margin:22px 8px 10px;font-size:13.5px}
.st-all{font-size:12px;background:#fff;border:1px solid #e3e6ea;border-radius:4px;padding:3px 9px}
.st-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}
.st-app{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 2px;border-radius:4px;text-align:center;font-size:11.5px}
.st-app:hover{background:#ffffffb0}
.st-app label{pointer-events:none;line-height:1.2}
.st-rec{margin:0 8px;color:#666;font-size:12px;flex:1}
.st-foot{margin:0 -28px;padding:0 44px;height:60px;border-top:1px solid #0000000f;background:#e9eef5cc;display:flex;align-items:center;justify-content:space-between;border-radius:0 0 8px 8px}
.st-user{display:flex;align-items:center;gap:10px;font-size:12.5px}
.avatar{width:28px;height:28px;border-radius:50%;background:#0f6cbd;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;flex:none}
.st-power{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:4px}
.st-power:hover{background:#fff}
.skin-server .startmenu{left:0;bottom:40px;width:560px;height:440px;max-height:calc(100% - 44px);background:#1b2738f2;color:#fff;display:flex;box-shadow:0 0 20px #0008}
.st-rail{width:48px;display:flex;flex-direction:column;align-items:center;gap:18px;padding:14px 0}
.st-rail .avatar{width:24px;height:24px;font-size:11px}
.st-list{width:250px;padding:10px 4px;overflow:auto}
.st-letter{padding:8px 12px;font-size:12.5px;opacity:.85}
.st-row{display:flex;gap:10px;align-items:center;padding:6px 12px;font-size:13px}
.st-row:hover,.st-tile:hover{background:#ffffff26}
.st-tiles{flex:1;padding:10px 8px}
.st-tilegrid{display:grid;grid-template-columns:repeat(2,100px);gap:4px;padding:0 12px}
.st-tile{height:100px;background:#0a5cab;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;position:relative;font-size:11.5px;text-align:center;padding:4px}
.st-tile label{pointer-events:none}

/* ---- windows ---- */
.win{position:absolute;display:flex;flex-direction:column;background:#fff;border:1px solid #6d6d6d80;border-radius:8px;box-shadow:0 8px 28px #00000040,0 2px 6px #0000002b;overflow:hidden;min-width:200px}
.win.focus{box-shadow:0 16px 48px #00000059,0 4px 10px #00000033;border-color:#5f5f5f99}
.skin-server .win{border-radius:0;border:1px solid #1883d7;box-shadow:0 6px 24px #0006}
.skin-server .win:not(.focus){border-color:#aaa}
.win.min{display:none}
.win.max{left:0!important;top:0!important;width:100%!important;height:100%!important;border-radius:0;border:none}
.win.flash .win-title{animation:wflash .13s 3}
@keyframes wflash{50%{background:#c8ccd2}}
.win-title{height:32px;flex:none;display:flex;align-items:center;background:#f3f3f3;position:relative}
.win.focus .win-title{background:#fff}
.skin-win11 .win.focus:not(.dark) .win-title{background:#eef4f9}
.win-tico{margin:0 8px 0 10px;display:flex}
.win-ttext{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#000}
.win:not(.focus) .win-ttext{color:#888}
.win-drag{flex:1;height:100%}
.win-tcustom{display:flex;height:100%;min-width:0;align-items:flex-end}
.win-btns{display:flex;height:100%;flex:none}
.wbtn{width:46px;height:100%;display:flex;align-items:center;justify-content:center;color:#111}
.wbtn:hover{background:#0000001a}
.wbtn.close:hover{background:#c42b1c;color:#fff}
.win.dark .win-title{background:#202020}
.win.dark .wbtn{color:#fff}
.win.dark .wbtn:hover{background:#ffffff26}
.win.dark .wbtn.close:hover{background:#c42b1c}
.win-body{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}
.win.blocked .win-body::after{content:"";position:absolute;inset:0;z-index:50}
.win-rs{position:absolute;z-index:60}
.rs-e{right:0;top:0;bottom:8px;width:5px;cursor:ew-resize}
.rs-s{left:0;right:8px;bottom:0;height:5px;cursor:ns-resize}
.rs-se{right:0;bottom:0;width:12px;height:12px;cursor:nwse-resize}
.win.max .win-rs{display:none}

/* ---- classic dialogs / controls ---- */
.win.dialog{background:#f0f0f0}
.win.dialog .win-title{background:#fff}
.dlg-content{padding:12px 14px 4px;flex:1;min-height:0;overflow:auto}
.dlg-btns{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px 12px;flex:none}
.wbutton{min-width:76px;height:24px;padding:0 12px;background:#fdfdfd;border:1px solid #d0d0d0;border-bottom-color:#b8b8b8;border-radius:4px;font-size:12px}
.skin-server .wbutton{border-radius:0;background:#e1e1e1;border:1px solid #adadad}
.wbutton:hover{background:#e5f1fb;border-color:#0078d4}
.wbutton.primary{border-color:#0067c0;box-shadow:inset 0 0 0 1px #0067c0}
.wbutton:disabled{color:#a0a0a0;border-color:#ddd;box-shadow:none;background:#f3f3f3}
.winput,.wselect{height:23px;border:1px solid #8a8a8a;background:#fff;padding:1px 5px;font-size:12px;border-radius:0;outline:none;user-select:text;-webkit-user-select:text}
.winput:focus,.wselect:focus{border-color:#0078d4}
.winput:disabled{background:#f0f0f0;color:#888;border-color:#ccc}
.wfield{display:flex;align-items:center;gap:8px;margin:7px 0}
.wfield>label{width:118px;flex:none}
.wfield .winput,.wfield .wselect{flex:1;min-width:0}
.wgroup{border:1px solid #d5d5d5;padding:8px 10px 6px;margin:8px 0;position:relative}
.wgroup>legend,.wgroup>.wgl{position:absolute;top:-9px;left:8px;background:#f0f0f0;padding:0 4px}
.wcheck{display:flex;align-items:center;gap:6px;margin:5px 0}
.wcheck input{margin:0}
.msgbox{display:flex;gap:14px;align-items:flex-start;padding:10px 4px 12px}
.msgtext{padding-top:4px;white-space:pre-line;line-height:1.45;user-select:text;-webkit-user-select:text}
.wtabs{display:flex;gap:0;margin:0 0 -1px 2px;position:relative;z-index:1}
.wtab{padding:3px 9px;border:1px solid #d5d5d5;border-bottom:none;background:#f0f0f0;margin-right:-1px}
.wtab.on{background:#fff;padding-top:5px;margin-top:-2px}
.wtabpane{background:#fff;border:1px solid #d5d5d5;padding:10px 12px;min-height:240px}

/* ---- context menus ---- */
.ctxmenu{position:absolute;z-index:99999;min-width:150px;background:#f9f9f9;border:1px solid #c8c8c8;border-radius:6px;box-shadow:0 6px 18px #0000003d;padding:3px;font-size:12px}
.skin-server .ctxmenu{border-radius:0;background:#f2f2f2;padding:2px}
.ctxitem{display:flex;align-items:center;height:24px;padding:0 8px 0 4px;border-radius:4px;white-space:nowrap}
.skin-server .ctxitem{border-radius:0}
.ctxitem:hover{background:#0000000f}
.skin-server .ctxitem:hover{background:#91c9f7}
.ctxitem.dis{color:#9a9a9a}
.ctxitem.dis:hover{background:none}
.ctxitem.bold{font-weight:600}
.ctxico{width:22px;display:flex;justify-content:center}
.ctxlbl{flex:1;padding-right:18px}
.ctxarr{font-size:14px;color:#555}
.ctxsep{height:1px;background:#d8d8d8;margin:3px 2px}

/* ---- menubar / toolbars shared by classic apps ---- */
.menubar{display:flex;height:22px;align-items:center;padding:0 2px;background:#fff;flex:none}
.menubar span{padding:2px 7px;border-radius:3px}
.menubar span:hover{background:#e5f1fb}
.explorer-empty{display:flex;flex-direction:column;height:100%}
.exp-bar{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #e5e5e5;color:#555}
.exp-addr{flex:1;border:1px solid #e0e0e0;border-radius:4px;padding:4px 8px;display:flex;align-items:center;gap:6px;background:#fafafa}
.exp-msg{flex:1;display:flex;align-items:center;justify-content:center;color:#666}
.wfield>div{flex:1;min-width:0}
.dlg-content .winput,.dlg-content .wselect{min-width:0}
.wfield>div>.winput{flex:1}
