/* =====================================================================
   CloudLab - VMware Workstation 17 Pro replica + Ubuntu 24.04 guest
   All selectors are prefixed with .vmw- (guest UI: .vmw-g-)
   ===================================================================== */

/* ---------------- main window ---------------- */
.vmw-win .win-titlebar { background: #fff; }
.vmw { background: #fff; font-family: 'Segoe UI', var(--font); font-size: 12px; color: #1f2a37; }
.vmw-top { display: flex; align-items: center; height: 30px; flex: none; background: #f4f5f7; border-bottom: 1px solid #d8dde4; padding-left: 2px; }
.vmw-top .vmw-menubar { background: transparent; height: 26px; }
.vmw-top .vmw-menubar .menubar-item { padding: 0 9px; }
.vmw-toolbar { display: flex; align-items: center; gap: 1px; padding-left: 6px; margin-left: 4px; border-left: 1px solid #d3d8df; height: 22px; }
.vmw-notb .vmw-toolbar { display: none; }
.vmw-tbtn { height: 24px; min-width: 26px; padding: 0 4px; border: 1px solid transparent; border-radius: 3px; background: transparent; display: inline-flex; align-items: center; justify-content: center; gap: 2px; cursor: default; color: #3c4a5a; }
.vmw-tbtn:hover:not(:disabled) { background: #e3ecf7; border-color: #c4d6ec; }
.vmw-tbtn:active:not(:disabled) { background: #d2e2f4; }
.vmw-tbtn.on { background: #dfe8f3; border-color: #c7d4e4; }
.vmw-tbtn:disabled { opacity: .38; }
.vmw-tsep { width: 1px; height: 18px; background: #d0d6de; margin: 0 5px; }
.vmw-splitbtn { display: inline-flex; border: 1px solid transparent; border-radius: 3px; }
.vmw-splitbtn:hover { border-color: #c4d6ec; }
.vmw-splitbtn .vmw-tbtn { border: none; border-radius: 0; }
.vmw-splitbtn .vmw-sb-main { min-width: 28px; }
.vmw-splitbtn .vmw-sb-dd { min-width: 14px; width: 14px; padding: 0; }

.vmw-main { flex: 1; min-height: 0; display: flex; }
.vmw-lib { width: 230px; flex: none; display: flex; flex-direction: column; background: #fff; min-width: 0; }
.vmw-nolib .vmw-lib, .vmw-nolib .vmw-splitter { display: none; }
.vmw-lib-head { height: 26px; flex: none; display: flex; align-items: center; justify-content: space-between; padding: 0 4px 0 8px; background: #eef1f5; border-bottom: 1px solid #dde2e8; color: #33404f; font-weight: 600; }
.vmw-x { width: 20px; height: 20px; border: none; background: transparent; border-radius: 3px; display: flex; align-items: center; justify-content: center; color: #5a6676; padding: 0; }
.vmw-x svg { width: 8px; height: 8px; }
.vmw-x:hover { background: #dce4ee; }
.vmw-lib-search { display: flex; align-items: center; margin: 5px 6px; height: 22px; border: 1px solid #c9d0d9; border-radius: 2px; background: #fff; }
.vmw-lib-search-in { flex: 1; min-width: 0; border: none; outline: none; padding: 0 6px; font-size: 12px; background: transparent; }
.vmw-lib-search-in::placeholder { color: #9aa4b1; font-style: italic; }
.vmw-lib-search-dd { width: 16px; display: flex; align-items: center; justify-content: center; color: #6b7685; border-left: 1px solid #e3e7ec; height: 100%; }
.vmw-tree { flex: 1; overflow: auto; padding: 2px 0; }
.vmw-node { display: flex; align-items: center; gap: 4px; height: 22px; padding-right: 8px; white-space: nowrap; cursor: default; }
.vmw-node:hover { background: #e9f2fc; }
.vmw-node.sel { background: #cfe3f8; }
.vmw-twisty { width: 12px; display: inline-flex; justify-content: center; color: #5a6676; flex: none; }
.vmw-node-ico { display: inline-flex; flex: none; }
.vmw-node-label { overflow: hidden; text-overflow: ellipsis; }
.vmw-splitter { width: 4px; flex: none; cursor: col-resize; background: #e5e9ee; border-left: 1px solid #d6dbe2; }
.vmw-content { flex: 1; min-width: 0; display: flex; flex-direction: column; background: #fff; }
.vmw-tabbar { height: 28px; flex: none; display: flex; align-items: flex-end; gap: 2px; padding: 0 4px; background: #dbe2ea; border-bottom: 1px solid #b9c4d1; overflow: hidden; }
.vmw-tab { height: 24px; max-width: 220px; min-width: 90px; display: flex; align-items: center; gap: 6px; padding: 0 4px 0 8px; background: #e8edf3; border: 1px solid #c3cdd9; border-bottom: none; border-radius: 3px 3px 0 0; color: #3a4757; cursor: default; position: relative; top: 1px; }
.vmw-tab:hover { background: #f2f5f9; }
.vmw-tab.sel { background: #fff; height: 25px; color: #172230; border-color: #b9c4d1; }
.vmw-tab-ico { display: inline-flex; flex: none; }
.vmw-tab-label { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.vmw-tab-x { width: 16px; height: 16px; border: none; background: transparent; border-radius: 2px; display: flex; align-items: center; justify-content: center; padding: 0; color: #6b7685; visibility: hidden; flex: none; }
.vmw-tab-x svg { width: 7px; height: 7px; }
.vmw-tab:hover .vmw-tab-x, .vmw-tab.sel .vmw-tab-x { visibility: visible; }
.vmw-tab-x:hover { background: #d4dde8; color: #c42b1c; }
.vmw-page { flex: 1; min-height: 0; position: relative; overflow: hidden; display: flex; flex-direction: column; }
.vmw-empty { flex: 1; background: #f2f4f7; }
.vmw-thumbs { flex: none; height: 104px; background: #e3e8ee; border-top: 1px solid #c4cdd8; display: flex; gap: 8px; padding: 8px; overflow-x: auto; }
.vmw-thumb { width: 124px; flex: none; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 3px; border: 1px solid transparent; border-radius: 3px; cursor: default; }
.vmw-thumb:hover { background: #eef3f9; }
.vmw-thumb.sel { border-color: #7fa9d8; background: #f5f9fd; }
.vmw-thumb-screen { width: 116px; height: 72px; background: #000; position: relative; overflow: hidden; border: 1px solid #6c7a8a; }
.vmw-thumb-label { font-size: 11px; max-width: 116px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.vmw-thumbclone { position: absolute !important; left: 0; top: 0; width: 1000px !important; height: 620px !important; inset: auto !important; transform-origin: 0 0; pointer-events: none; }
.vmw-thumb-screen .vmw-thumbclone { transform: scale(.116); }
.vmw-thumbbox .vmw-thumbclone { transform: scale(.3); }
.vmw-status { height: 24px; flex: none; display: flex; align-items: center; background: #f0f2f5; border-top: 1px solid #d3d9e0; padding: 0 6px; gap: 8px; }
.vmw-nostatus .vmw-status { display: none; }
.vmw-status-msg { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #33404f; }
.vmw-status-devs { display: flex; align-items: center; gap: 3px; }
.vmw-sdev { display: inline-flex; padding: 2px; border-radius: 2px; cursor: default; }
.vmw-sdev:hover { background: #dce6f2; }
.vmw-sdev.off { opacity: .4; }
.vmw-sdev-sep { width: 1px; height: 14px; background: #c8cfd8; margin: 0 3px; }

/* console view / full screen */
.vmw-consoleview .vmw-lib, .vmw-consoleview .vmw-splitter, .vmw-consoleview .vmw-tabbar { display: none; }
.vmw-fullscreen .vmw-top, .vmw-fullscreen .vmw-lib, .vmw-fullscreen .vmw-splitter, .vmw-fullscreen .vmw-tabbar, .vmw-fullscreen .vmw-status, .vmw-fullscreen .vmw-thumbs { display: none !important; }
.win.vmw-win:has(.vmw-fullscreen) > .win-titlebar { display: none; }
.vmw-fsbar { display: none; }
.vmw-fullscreen .vmw-fsbar { display: flex; position: absolute; top: 0; left: 50%; transform: translate(-50%, -26px); z-index: 30; align-items: center; gap: 4px; padding: 3px 8px; background: #e8edf3; border: 1px solid #a9b6c5; border-top: none; border-radius: 0 0 6px 6px; box-shadow: 0 3px 10px rgba(0,0,0,.35); transition: transform .2s; }
.vmw-fullscreen .vmw-fsbar:hover { transform: translate(-50%, 0); }
.vmw-fullscreen .vmw-fsbar::after { content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 10px; }
.vmw-fs-name { padding: 0 12px; font-weight: 600; color: #26323f; }

/* ---------------- Home tab ---------------- */
.vmw-home { flex: 1; overflow: auto; display: flex; flex-direction: column; align-items: center; background: linear-gradient(#ffffff, #f3f6f9); padding: 48px 24px 24px; }
.vmw-home-banner { font-family: 'Segoe UI Light', 'Segoe UI', var(--font); font-weight: 300; font-size: 38px; letter-spacing: 3px; color: #56687e; margin: 20px 0 54px; white-space: nowrap; }
.vmw-home-pro { font-weight: 700; color: #2f4a69; }
.vmw-home-tm { font-size: 14px; vertical-align: super; color: #8090a3; }
.vmw-home-tiles { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; }
.vmw-tile { width: 196px; height: 186px; border: 1px solid #d3dae2; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; cursor: default; outline: none; border-radius: 2px; }
.vmw-tile:hover, .vmw-tile:focus-visible { background: #eef5fc; border-color: #95bde6; }
.vmw-tile:active { background: #e0ecf8; }
.vmw-tile-label { font-size: 13px; color: #2e3d4f; text-align: center; padding: 0 12px; line-height: 1.35; }
.vmw-home-foot { margin-top: auto; padding-top: 36px; font-size: 11px; color: #9aa6b4; letter-spacing: 1px; }

/* ---------------- VM summary tab ---------------- */
.vmw-sumpage { flex: 1; overflow: auto; display: flex; gap: 28px; padding: 16px 22px; background: #fff; }
.vmw-sum-left { flex: 1 1 380px; min-width: 300px; max-width: 560px; }
.vmw-sum-right { flex: 0 1 340px; min-width: 260px; }
.vmw-sum-title { font-size: 20px; color: #1d2b3b; margin: 2px 0 12px; font-weight: 400; }
.vmw-actions { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.vmw-act { display: inline-flex; align-items: center; gap: 8px; color: #1565c0; cursor: pointer; width: max-content; padding: 2px 0; }
.vmw-act:hover { text-decoration: underline; }
.vmw-act-warn { display: flex; align-items: center; gap: 6px; color: #8a5a00; margin-top: 4px; }
.vmw-sec { margin-bottom: 12px; }
.vmw-sec-head { display: flex; align-items: center; gap: 6px; height: 24px; border-bottom: 1px solid #d5dce4; color: #2c4767; font-weight: 600; cursor: default; margin-bottom: 4px; }
.vmw-sec-tw { width: 10px; display: inline-flex; color: #5a6676; }
.vmw-devs { display: flex; flex-direction: column; }
.vmw-dev { display: grid; grid-template-columns: 20px 150px 1fr; align-items: center; height: 22px; padding: 0 4px; cursor: default; }
.vmw-dev:hover { background: #eef5fc; }
.vmw-dev.sel { background: #d3e5f7; }
.vmw-dev-sum { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #3c4a5a; }
.vmw-desc { width: 100%; height: 64px; resize: none; border: 1px solid transparent; font: inherit; color: #2c3a4a; padding: 4px; outline: none; background: transparent; }
.vmw-desc:hover { border-color: #d5dce4; }
.vmw-desc:focus { border-color: #8db6e3; background: #fff; }
.vmw-desc::placeholder { color: #8a96a4; font-style: italic; }
.vmw-thumbbox { width: 300px; height: 186px; background: #000; border: 1px solid #56606c; position: relative; overflow: hidden; margin: 6px 0 14px; }
.vmw-details { display: flex; flex-direction: column; gap: 3px; }
.vmw-drow { display: grid; grid-template-columns: 140px 1fr; gap: 6px; }
.vmw-dk { color: #4f5d6d; }
.vmw-dv { overflow-wrap: anywhere; color: #1f2a37; }

/* ---------------- console ---------------- */
.vmw-console { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #000; }
.vmw-notice { flex: none; display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: #fff7d6; border-bottom: 1px solid #e3cf7d; color: #3d3410; }
.vmw-notice-ico { display: inline-flex; }
.vmw-console-holder { flex: 1; min-height: 0; position: relative; overflow: hidden; background: #000; }
.vmw-guest { position: absolute; inset: 0; overflow: hidden; outline: none; background: #000; font-family: 'Ubuntu', 'Cantarell', 'Segoe UI', var(--font); font-size: 13px; color: #fff; user-select: none; }
.vmw-guest > * { position: absolute; inset: 0; }
.vmw-pause-ov { display: none; position: absolute; inset: 0; background: rgba(40,48,58,.55); align-items: center; justify-content: center; z-index: 20; }
.vmw-console-holder.paused .vmw-pause-ov { display: flex; }
.vmw-pause-btn { width: 96px; height: 96px; border-radius: 50%; background: rgba(255,255,255,.85); display: flex; align-items: center; justify-content: center; padding-left: 8px; box-shadow: 0 4px 20px rgba(0,0,0,.4); cursor: default; }

/* ---------------- dialogs / forms ---------------- */
.vmw-dlg .win-body { background: #f0f0f0; font-family: 'Segoe UI', var(--font); font-size: 12px; color: #1a1a1a; }
.vmw-dlgbody { flex: 1; min-height: 0; overflow: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.vmw-dlgfoot { flex: none; display: flex; justify-content: flex-end; gap: 8px; padding: 10px 12px; border-top: 1px solid #dcdcdc; }
.vmw-grp { margin: 0 0 10px; display: flex; flex-direction: column; gap: 6px; }
.vmw-grp > legend { color: #1d3c66; }
.vmw-row { display: flex; align-items: center; gap: 6px; }
.vmw-row.vmw-top, .vmw-top { align-items: flex-start; }
.w32-check.dis, .w32-radio.dis { color: #9a9a9a; }
.vmw-grow { flex: 1; min-width: 0; }
input.vmw-grow, select.vmw-grow { width: 100%; }
.vmw-ind { margin-left: 22px; }
.vmw-gap { height: 8px; flex: none; }
.vmw-mt { margin-top: 8px; }
.vmw-ml { margin-left: 10px; }
.vmw-sp { flex: 1; }
.vmw-lbl { margin: 2px 0 4px; }
.vmw-note { color: #3f3f3f; line-height: 1.45; }
.vmw-note.dis { color: #9a9a9a; }
.vmw-dim { color: #6b6b6b; }
.vmw-right { display: flex; justify-content: flex-end; gap: 6px; margin-top: 6px; }
.vmw-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vmw-grid2 { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: 6px 10px; }
.vmw-listbox { background: #fff; border: 1px solid #c8c8c8; min-height: 70px; padding: 4px 6px; line-height: 1.6; overflow: auto; }
.vmw-listbox.tall { min-height: 150px; max-height: 220px; }
.vmw-path { word-break: break-all; color: #2a2a2a; }
.vmw-cell { display: inline-flex; align-items: center; gap: 6px; }
.vmw-util { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.vmw-util .w32-btn { min-width: 92px; }
.vmw-tiny { width: 44px; }
.vmw-ipin { width: 120px; font-family: 'Segoe UI', var(--font); }
.vmw-hotkeys { display: flex; gap: 14px; }
.vmw-shieldbtn { display: inline-flex; align-items: center; gap: 4px; }
.vmw-spin { display: inline-flex; align-items: stretch; }
.vmw-spin-in { width: 74px; border-radius: 3px 0 0 3px; text-align: right; }
.vmw-spin-btns { display: flex; flex-direction: column; width: 16px; border: 1px solid #c8c8c8; border-left: none; border-radius: 0 3px 3px 0; overflow: hidden; }
.vmw-spin-b { flex: 1; border: none; background: #f7f7f7; padding: 0; display: flex; align-items: center; justify-content: center; color: #444; }
.vmw-spin-b:hover:not(:disabled) { background: #e5f1fb; }
.vmw-spin.dis .vmw-spin-b { color: #aaa; }
.vmw-detect { display: flex; gap: 8px; align-items: flex-start; min-height: 36px; line-height: 1.45; }
.vmw-summary { background: #fff; border: 1px solid #c8c8c8; padding: 6px 8px; max-height: 190px; overflow: auto; }
.vmw-sumrow { display: grid; grid-template-columns: 120px 1fr; gap: 6px; padding: 2px 0; }
.vmw-sumrow span:last-child { word-break: break-all; }

/* ---------------- wizards ---------------- */
.vmw-wiz .win-body { display: flex; flex-direction: column; }
.vmw-wiz-head { flex: none; display: flex; align-items: center; gap: 10px; padding: 12px 14px 12px 22px; background: #fff; border-bottom: 1px solid #d5d5d5; min-height: 66px; }
.vmw-wiz-ht { flex: 1; min-width: 0; }
.vmw-wiz-title { font-weight: 700; margin-bottom: 4px; }
.vmw-wiz-sub { padding-left: 14px; color: #333; line-height: 1.4; }
.vmw-wiz-hico { flex: none; display: flex; }
.vmw-wiz-body { flex: 1; min-height: 0; overflow: auto; padding: 14px 22px 10px; }
.vmw-wiz-body.welcome { padding: 0; display: flex; background: #fff; overflow: hidden; }
.vmw-wiz-side { width: 164px; flex: none; background: linear-gradient(170deg, #3b5f8a 0%, #24405f 60%, #1b2f46 100%); display: flex; flex-direction: column; align-items: center; padding: 28px 10px; gap: 16px; color: #fff; }
.vmw-wiz-side-logo { width: 84px; height: 84px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); border-radius: 10px; }
.vmw-wiz-side-brand { font-size: 11px; letter-spacing: 1.5px; font-weight: 600; text-align: center; opacity: .9; margin-top: auto; }
.vmw-wiz-wmain { flex: 1; min-width: 0; padding: 22px 22px 10px; overflow: auto; }
.vmw-wiz-wtitle { font-size: 18px; color: #1d3c66; margin-bottom: 18px; font-weight: 400; }
.vmw-wiz-wel { display: flex; flex-direction: column; gap: 8px; }
.vmw-wiz-wel .vmw-note { margin-left: 22px; margin-bottom: 8px; }
.vmw-wiz-wel > .vmw-note:first-child { margin-left: 0; }
.vmw-wiz-pg { display: flex; flex-direction: column; gap: 6px; }
.vmw-wiz-foot { flex: none; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-top: 1px solid #d5d5d5; background: #f0f0f0; }
.vmw-wiz-foot .w32-btn { min-width: 80px; }
.vmw-clsteps { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 16px; }
.vmw-clstep { display: flex; align-items: center; gap: 10px; color: #777; }
.vmw-clstep.cur { color: #1a1a1a; font-weight: 600; }
.vmw-clstep.done { color: #1a1a1a; }
.vmw-clmark { width: 14px; height: 14px; display: inline-flex; align-items: center; justify-content: center; }
.vmw-clstep.cur .vmw-clmark::before { content: ''; width: 0; height: 0; border-left: 7px solid #2f7fd0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.vmw-clstep.done .vmw-clmark::before { content: '\2713'; color: #2a8a3e; font-weight: 700; }
.vmw-hwlist { min-height: 220px; max-height: 240px; padding: 2px; }
.vmw-hwrow { display: flex; align-items: center; gap: 6px; height: 21px; padding: 0 4px; cursor: default; }
.vmw-hwrow:hover { background: #e5f3ff; }
.vmw-hwrow.sel { background: #cce8ff; }

/* memory slider */
.vmw-memctl { display: flex; flex-direction: column; gap: 10px; }
.vmw-memctl.dis { opacity: .55; }
.vmw-mem-body { display: flex; gap: 18px; align-items: flex-start; }
.vmw-mem-scale { display: flex; gap: 6px; padding: 8px 0; }
.vmw-mem-ticks { position: relative; width: 58px; }
.vmw-mem-tick { position: absolute; right: 0; font-size: 11px; color: #333; white-space: nowrap; }
.vmw-mem-track { position: relative; width: 34px; cursor: default; }
.vmw-mem-rail { position: absolute; left: 8px; top: 0; bottom: 0; width: 4px; background: #c9c9c9; border: 1px solid #9a9a9a; border-radius: 2px; }
.vmw-mem-mark { position: absolute; left: 20px; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 9px solid #888; }
.vmw-mem-mark.max { border-right-color: #2b6fd6; }
.vmw-mem-mark.rec { border-right-color: #2e9b3d; }
.vmw-mem-mark.min { border-right-color: #e0a800; }
.vmw-mem-thumb { position: absolute; left: 1px; width: 18px; height: 10px; background: linear-gradient(#fdfdfd, #d9d9d9); border: 1px solid #6d6d6d; border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
.vmw-memctl:not(.dis) .vmw-mem-thumb { background: linear-gradient(#ffffff, #cfe3f8); border-color: #2b6fd6; }
.vmw-mem-legend { display: flex; flex-direction: column; gap: 16px; padding-top: 14px; }
.vmw-mem-leg { display: flex; gap: 8px; align-items: flex-start; line-height: 1.4; }
.vmw-mem-leg i { flex: none; width: 0; height: 0; margin-top: 3px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 9px solid #888; }
.vmw-mem-leg i.max { border-right-color: #2b6fd6; }
.vmw-mem-leg i.rec { border-right-color: #2e9b3d; }
.vmw-mem-leg i.min { border-right-color: #e0a800; }
.vmw-cpuctl .w32-select { width: 90px; }
.vmw-cpu-total { padding-left: 4px; }

/* ---------------- settings ---------------- */
.vmw-set .win-body { display: flex; flex-direction: column; }
.vmw-set-root { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 8px 10px 0; }
.vmw-set-tabs { padding: 0; }
.vmw-set-tabs .tab { padding: 4px 16px; }
.vmw-set-tabs .tab.sel { background: #f9f9f9; }
.vmw-set-main { flex: 1; min-height: 0; display: flex; gap: 10px; padding: 10px 0; }
.vmw-set-left { width: 300px; flex: none; display: flex; flex-direction: column; gap: 6px; }
.vmw-set-list { flex: 1; min-height: 0; overflow: auto; background: #fff; border: 1px solid #c8c8c8; }
.vmw-set-table td { height: 22px; }
.vmw-set-table td:first-child { width: 170px; }
.vmw-set-table td:last-child { max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
.vmw-set-lbtns { display: flex; justify-content: flex-end; gap: 6px; }
.vmw-set-panel { flex: 1; min-width: 0; overflow: auto; padding-right: 2px; }
.vmw-pnl { display: flex; flex-direction: column; gap: 4px; }
.vmw-pnl > .vmw-lbl:first-child { margin-top: 0; }
.vmw-set-foot { flex: none; display: flex; align-items: center; gap: 8px; padding: 10px 0 12px; border-top: 1px solid #dcdcdc; }
.vmw-set-foot .w32-btn { min-width: 80px; }

/* ---------------- snapshot manager ---------------- */
.vmw-sm .win-body { display: flex; flex-direction: column; }
.vmw-sm-root { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 10px; gap: 10px; }
.vmw-sm-top { flex: 1; min-height: 160px; display: flex; gap: 10px; }
.vmw-sm-graph { flex: 1; min-width: 0; overflow: auto; background: #fff; border: 1px solid #b9b9b9; padding: 18px; }
.vmw-sm-btns { width: 120px; flex: none; display: flex; flex-direction: column; gap: 6px; }
.vmw-sm-btns .w32-btn { width: 100%; }
.vmw-sm-btns.bottom { justify-content: flex-end; }
.vmw-sm-bottom { flex: none; display: flex; gap: 10px; align-items: stretch; }
.vmw-sm-details { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.vmw-sm-details .vmw-grp { margin: 0; }
.vmw-sm-br { display: flex; align-items: flex-start; }
.vmw-sm-node { width: 96px; flex: none; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 4px 2px; border: 1px solid transparent; border-radius: 2px; cursor: default; }
.vmw-sm-node:hover { background: #eef5fc; }
.vmw-sm-node.sel { background: #cce4fa; border-color: #7fb2e5; }
.vmw-sm-pic { width: 58px; height: 42px; display: flex; align-items: center; justify-content: center; }
.vmw-sm-pic.snap { background: #eef1f4; border: 1px solid #8e9aa8; box-shadow: 2px 2px 0 #c5ccd5; }
.vmw-sm-pic.snap.on { background: #1d2733; }
.vmw-sm-label { font-size: 11px; text-align: center; max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vmw-sm-kids { display: flex; flex-direction: column; gap: 6px; position: relative; padding-left: 26px; }
.vmw-sm-kids::before { content: ''; position: absolute; left: 0; top: 26px; width: 14px; border-top: 1px solid #6c7f96; }
.vmw-sm-kid { position: relative; }
.vmw-sm-kid::before { content: ''; position: absolute; left: -12px; top: 26px; width: 12px; border-top: 1px solid #6c7f96; }
.vmw-sm-kids:not(.multi) > .vmw-sm-kid::before { left: -14px; width: 14px; }
.vmw-sm-kids.multi > .vmw-sm-kid::after { content: ''; position: absolute; left: -12px; top: 0; bottom: -6px; border-left: 1px solid #6c7f96; }
.vmw-sm-kids.multi > .vmw-sm-kid:first-child::after { top: 26px; }
.vmw-sm-kids.multi > .vmw-sm-kid:last-child::after { bottom: auto; height: 26px; }
.vmw-sm-kids.multi > .vmw-sm-kid:first-child:last-child::after { display: none; }

/* ---------------- virtual network editor ---------------- */
.vmw-vne .win-body { display: flex; flex-direction: column; }
.vmw-vne-root { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px 12px 0; overflow: auto; }
.vmw-vne-tablewrap { background: #fff; border: 1px solid #b9b9b9; height: 130px; overflow: auto; flex: none; }
.vmw-vne-tablewrap.small { height: 96px; }
.vmw-vne-tablewrap .w32-list th { background: #fff; }
.vmw-vne-tbtns { display: flex; justify-content: flex-end; gap: 6px; }
.vmw-vne-tbtns .w32-btn { min-width: 110px; }
.vmw-vne-admin { display: flex; align-items: center; gap: 8px; min-height: 28px; }
.vmw-vne-foot { display: flex; gap: 6px; padding: 10px 0 12px; border-top: 1px solid #dcdcdc; margin-top: auto; }
.vmw-vne-foot .w32-btn { min-width: 0; padding: 0 10px; }

/* ---------------- UAC ---------------- */
.vmw-uac-ov { position: absolute; inset: 0; z-index: 190000; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; }
@keyframes vmwfade { from { opacity: 0; } }
.vmw-uac { width: 456px; background: #fff; border: 1px solid #1f5fa8; box-shadow: 0 18px 50px rgba(0,0,0,.5); font-family: 'Segoe UI', var(--font); color: #1a1a1a; }
.vmw-uac-head { background: #f3f3f3; padding: 12px 22px; font-size: 13px; }
.vmw-uac-main { padding: 18px 22px 16px; display: flex; flex-direction: column; gap: 12px; }
.vmw-uac-q { font-size: 20px; line-height: 1.3; font-weight: 600; }
.vmw-uac-app { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.vmw-uac-meta { font-size: 13px; color: #333; line-height: 1.5; }
.vmw-uac-more { color: #0067c0; font-size: 13px; cursor: pointer; }
.vmw-uac-more:hover { text-decoration: underline; }
.vmw-uac-details { font-size: 12px; color: #444; line-height: 1.5; }
.vmw-uac-btns { display: flex; gap: 8px; padding: 14px 22px 20px; background: #f3f3f3; }
.vmw-uac-btns button { flex: 1; height: 32px; border-radius: 4px; font-size: 14px; border: 1px solid #c9c9c9; background: #fdfdfd; color: #1a1a1a; }
.vmw-uac-btns button:hover { background: #f4f4f4; }
.vmw-uac-btns .vmw-uac-yes { background: #0067c0; border-color: #005ba7; color: #fff; }
.vmw-uac-btns .vmw-uac-yes:hover { background: #1975c5; }

/* ---------------- about ---------------- */
.vmw-about { flex: 1; display: flex; flex-direction: column; }
.vmw-about-banner { display: flex; align-items: center; gap: 14px; padding: 18px 20px; background: linear-gradient(120deg, #24405f, #3b5f8a); color: #fff; }
.vmw-about-t { font-size: 18px; letter-spacing: 2px; font-weight: 300; }
.vmw-about-body { padding: 14px 16px; }

/* ---------------- Ubuntu guest: boot / firmware ---------------- */
.vmw-g-black { background: #000; }
.vmw-g-post { background: #000; display: flex; align-items: center; justify-content: center; }
.vmw-g-logo { width: 230px; height: 60px; }
.vmw-g-post-hint { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; font-family: Consolas, monospace; font-size: 13px; color: #b5bbc4; }
.vmw-g-ply-bottom { position: absolute; bottom: 10%; left: 0; right: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.vmw-g-ply-word { display: flex; align-items: center; gap: 8px; font-size: 22px; font-weight: 300; letter-spacing: .5px; color: #fff; }
.vmw-g-spin { width: 28px; height: 28px; border: 3px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; animation: spin 1s linear infinite; }
.vmw-g-spin.dark { border-color: rgba(0,0,0,.15); border-top-color: #e95420; }
.vmw-g-efi { margin: 0; padding: 14px 16px; font-family: Consolas, 'Courier New', monospace; font-size: 14px; line-height: 1.35; color: #c8c8c8; white-space: pre-wrap; }
.vmw-g-cursor { animation: vmwblink 1s steps(1) infinite; }
@keyframes vmwblink { 50% { opacity: 0; } }
.vmw-g-fw { background: #c0c0c0; color: #000; font-family: Consolas, 'Courier New', monospace; font-size: 14px; display: flex; flex-direction: column; align-items: center; }
.vmw-g-fw.bios { background: #0000aa; color: #fff; }
.vmw-g-fw-title { width: 100%; text-align: center; background: #0000aa; color: #fff; padding: 4px; }
.vmw-g-fw.bios .vmw-g-fw-title { background: #00aaaa; color: #000; }
.vmw-g-fw-box { margin-top: 40px; width: 70%; max-width: 640px; border: 2px solid #0000aa; padding: 12px 18px; background: #c0c0c0; }
.vmw-g-fw.bios .vmw-g-fw-box { border-color: #fff; background: #0000aa; }
.vmw-g-fw-sub { color: #0000aa; margin-bottom: 10px; }
.vmw-g-fw.bios .vmw-g-fw-sub { color: #ffff55; }
.vmw-g-fw-item { padding: 2px 6px; cursor: default; }
.vmw-g-fw-item.sel { background: #0000aa; color: #fff; }
.vmw-g-fw.bios .vmw-g-fw-item.sel { background: #fff; color: #0000aa; }
.vmw-g-fw-note { margin-top: 10px; min-height: 18px; color: #aa0000; }
.vmw-g-fw-help { position: absolute; bottom: 10px; left: 0; right: 0; text-align: center; }
.vmw-g-grub { background: #000; color: #aaa; font-family: Consolas, 'Courier New', monospace; font-size: 14px; display: flex; flex-direction: column; align-items: center; padding-top: 28px; }
.vmw-g-grub-title { margin-bottom: 18px; }
.vmw-g-grub-box { width: 80%; border: 1px solid #aaa; padding: 6px 4px; min-height: 45%; }
.vmw-g-grub-box > div { padding: 1px 4px; white-space: pre; }
.vmw-g-grub-box > .sel { background: #aaa; color: #000; }
.vmw-g-grub-help { width: 80%; margin-top: 14px; white-space: pre-wrap; line-height: 1.4; }

/* ---------------- Ubuntu guest: GNOME shell ---------------- */
.vmw-g-top { position: absolute; left: 0; right: 0; top: 0; height: 30px; background: #000; color: #fff; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; font-size: 13px; font-weight: 600; z-index: 5; padding: 0 8px; }
.vmw-g-ws { display: flex; align-items: center; gap: 4px; height: 22px; padding: 0 10px; border-radius: 11px; justify-self: start; cursor: default; }
.vmw-g-ws:hover { background: rgba(255,255,255,.16); }
.vmw-g-ws i { display: block; width: 6px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.55); }
.vmw-g-ws i.on { width: 30px; background: #fff; }
.vmw-g-clock { padding: 3px 12px; border-radius: 11px; white-space: pre; cursor: default; }
.vmw-g-clock:hover { background: rgba(255,255,255,.16); }
.vmw-g-ind { justify-self: end; display: flex; align-items: center; gap: 10px; padding: 3px 12px; border-radius: 11px; cursor: default; }
.vmw-g-ind:hover { background: rgba(255,255,255,.16); }
.vmw-g-ind span { display: inline-flex; }
.vmw-g-netind.off { opacity: .45; }

.vmw-g-live { background: radial-gradient(ellipse at 70% 70%, #77216f 0%, #3a0f35 45%, #1d0a1b 100%); }
.vmw-g-instwin { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: min(820px, 88%); height: min(560px, 82%); background: #fafafa; color: #2c2c2c; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 16px 50px rgba(0,0,0,.55); }
.vmw-g-instwin-head { height: 46px; flex: none; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; background: #ebebeb; border-bottom: 1px solid #dadada; }
.vmw-g-slide { flex: 1; min-height: 0; display: flex; align-items: center; gap: 30px; padding: 20px 40px; background: linear-gradient(135deg, #fff 0%, #f6efec 100%); }
.vmw-g-slide-art { position: relative; width: 240px; height: 220px; flex: none; }
.vmw-g-slide-art i { position: absolute; border-radius: 50%; opacity: .9; }
.vmw-g-slide-art i.a { width: 150px; height: 150px; left: 0; top: 10px; background: #e95420; animation: vmwfloat 6s ease-in-out infinite; }
.vmw-g-slide-art i.b { width: 110px; height: 110px; left: 110px; top: 80px; background: #77216f; animation: vmwfloat 7s ease-in-out infinite reverse; }
.vmw-g-slide-art i.c { width: 70px; height: 70px; left: 140px; top: 0; background: #f4a259; animation: vmwfloat 5s ease-in-out infinite; }
@keyframes vmwfloat { 50% { transform: translate(8px, -10px); } }
.vmw-g-slide-logo { position: absolute; left: 36px; top: 46px; filter: drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.vmw-g-slide-text h2 { margin: 0 0 12px; font-size: 26px; font-weight: 300; color: #2c2c2c; }
.vmw-g-slide-text p { margin: 0; font-size: 14px; line-height: 1.6; color: #444; }
.vmw-g-inst-foot { flex: none; padding: 16px 28px 22px; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid #e3e3e3; background: #fafafa; }
.vmw-g-inst-stat { font-size: 13px; color: #333; }
.vmw-g-inst-bar { height: 6px; border-radius: 3px; background: #ddd; overflow: hidden; }
.vmw-g-inst-bar > div { height: 100%; width: 0; background: #e95420; }
.vmw-g-instwin.manual .vmw-g-instpage { flex: 1; overflow: auto; padding: 26px 60px; display: flex; flex-direction: column; gap: 10px; }
.vmw-g-instpage h1 { font-size: 22px; font-weight: 400; margin: 0 0 8px; }
.vmw-g-instpage p { margin: 0; }
.vmw-g-instnav { display: flex; justify-content: space-between; margin-top: auto; padding-top: 14px; }
.vmw-g-btn { height: 34px; padding: 0 22px; border-radius: 6px; border: 1px solid #cfcfcf; background: #fff; color: #2c2c2c; font-size: 13px; font-family: inherit; }
.vmw-g-btn:hover { background: #f2f2f2; }
.vmw-g-btn.primary { background: #e95420; border-color: #d34615; color: #fff; }
.vmw-g-btn.primary:hover { background: #f06030; }
.vmw-g-langs { border: 1px solid #ddd; border-radius: 6px; background: #fff; max-height: 220px; overflow: auto; }
.vmw-g-lang { padding: 8px 12px; border-bottom: 1px solid #f0f0f0; }
.vmw-g-lang.sel { background: #e95420; color: #fff; }
.vmw-g-opt { display: flex; gap: 10px; padding: 12px; border: 1px solid #ddd; border-radius: 8px; background: #fff; align-items: flex-start; cursor: default; }
.vmw-g-opt input { accent-color: #e95420; margin-top: 3px; }
.vmw-g-opt div div { color: #666; font-size: 12px; margin-top: 2px; }
.vmw-g-err { color: #c01c28; min-height: 18px; font-size: 13px; }
.vmw-g-field { display: grid; grid-template-columns: 180px 1fr; align-items: center; gap: 10px; }
.vmw-g-in { height: 34px; border: 1px solid #cfcfcf; border-radius: 6px; padding: 0 10px; font: inherit; font-size: 13px; outline: none; background: #fff; color: #2c2c2c; user-select: text; }
.vmw-g-in:focus { border-color: #e95420; box-shadow: 0 0 0 2px rgba(233,84,32,.25); }
.vmw-g-chk { display: flex; align-items: center; gap: 8px; }
.vmw-g-chk input { accent-color: #e95420; }

/* GDM */
.vmw-g-gdm { background: radial-gradient(ellipse at 50% 40%, #3d3d3d 0%, #262626 70%, #1e1e1e 100%); }
.vmw-g-gdm-center { position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 14px; width: 340px; }
.vmw-g-gdm-center.shake { animation: vmwshake .4s; }
@keyframes vmwshake { 20%, 60% { margin-left: -10px; } 40%, 80% { margin-left: 10px; } }
.vmw-g-avatar { border-radius: 50%; background: #3584e4; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.vmw-g-gdm-list { background: rgba(255,255,255,.06); border-radius: 12px; padding: 6px; }
.vmw-g-gdm-user { display: flex; align-items: center; gap: 16px; padding: 12px 40px 12px 16px; border-radius: 10px; cursor: default; outline: none; min-width: 300px; }
.vmw-g-gdm-user:hover, .vmw-g-gdm-user:focus { background: rgba(255,255,255,.1); }
.vmw-g-gdm-name { font-size: 17px; font-weight: 700; }
.vmw-g-gdm-notlisted { font-size: 13px; color: #ccc; margin-top: 6px; cursor: default; }
.vmw-g-gdm-notlisted:hover { text-decoration: underline; }
.vmw-g-gdm-namerow { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; }
.vmw-g-gdm-back { width: 30px; height: 30px; border-radius: 50%; border: none; background: rgba(255,255,255,.1); color: #fff; display: flex; align-items: center; justify-content: center; padding: 0; }
.vmw-g-gdm-back:hover { background: rgba(255,255,255,.2); }
.vmw-g-gdm-pwrow { position: relative; width: 300px; }
.vmw-g-gdm-pw { width: 100%; height: 38px; border-radius: 19px; border: 2px solid transparent; background: rgba(255,255,255,.12); color: #fff; padding: 0 44px 0 16px; font: inherit; font-size: 14px; outline: none; user-select: text; }
.vmw-g-gdm-pw:focus { border-color: rgba(53,132,228,.8); }
.vmw-g-gdm-pw::placeholder { color: rgba(255,255,255,.5); }
.vmw-g-gdm-go { position: absolute; right: 4px; top: 4px; width: 30px; height: 30px; border-radius: 50%; border: none; background: rgba(255,255,255,.15); color: #fff; display: flex; align-items: center; justify-content: center; padding: 0; }
.vmw-g-gdm-go:hover { background: rgba(255,255,255,.25); }
.vmw-g-gdm-go.busy { animation: spin 1s linear infinite; }
.vmw-g-gdm-msg { min-height: 18px; font-size: 13px; color: #f5c211; }
.vmw-g-gdm-logo { position: absolute; bottom: 26px; left: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 20px; font-weight: 300; color: #fff; opacity: .9; }

/* desktop */
.vmw-g-desk { background: #000; }
.vmw-g-deskarea { position: absolute; left: 0; right: 0; top: 30px; bottom: 0; overflow: hidden; }
.vmw-g-wall { position: absolute; inset: 0; background:
  radial-gradient(ellipse 45% 60% at 72% 60%, rgba(255,140,60,.85) 0%, rgba(233,84,32,.55) 30%, rgba(0,0,0,0) 65%),
  radial-gradient(ellipse 55% 70% at 30% 40%, rgba(119,33,111,.9) 0%, rgba(60,14,56,.6) 45%, rgba(0,0,0,0) 75%),
  linear-gradient(135deg, #2c001e 0%, #4a0d3f 45%, #7b1f2d 75%, #c34113 100%); }
.vmw-g-wall::after { content: ''; position: absolute; left: 52%; top: 30%; width: 34%; height: 46%; border-radius: 50%; background: radial-gradient(circle, rgba(255,210,150,.35), rgba(0,0,0,0) 70%); filter: blur(8px); }
.vmw-g-dock { position: absolute; left: 0; top: 0; bottom: 0; width: 62px; background: rgba(30,30,30,.82); display: flex; flex-direction: column; align-items: center; padding: 6px 0; gap: 4px; z-index: 3; }
.vmw-g-dockitem { position: relative; width: 52px; height: 52px; border-radius: 10px; display: flex; align-items: center; justify-content: center; cursor: default; flex: none; }
.vmw-g-dockitem:hover { background: rgba(255,255,255,.14); }
.vmw-g-dot { position: absolute; left: 1px; top: 50%; width: 4px; height: 4px; margin-top: -2px; border-radius: 50%; background: #e95420; display: none; }
.vmw-g-dockitem.running .vmw-g-dot { display: block; }
.vmw-g-docksep { width: 40px; height: 1px; background: rgba(255,255,255,.2); margin: 3px 0; }
.vmw-g-dockspacer { flex: 1; }
.vmw-g-showapps { width: 46px; height: 46px; }
.vmw-g-dicons { position: absolute; right: 10px; top: 10px; display: flex; flex-direction: column; gap: 6px; z-index: 1; }
.vmw-g-dicon { width: 88px; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 6px 2px; border-radius: 8px; font-size: 12px; text-align: center; text-shadow: 0 1px 3px rgba(0,0,0,.9); outline: none; cursor: default; }
.vmw-g-dicon:hover { background: rgba(255,255,255,.12); }
.vmw-g-dicon.sel { background: rgba(233,84,32,.55); }
.vmw-g-winlayer { position: absolute; left: 62px; right: 0; top: 0; bottom: 0; z-index: 2; pointer-events: none; }
.vmw-g-winlayer > * { pointer-events: auto; }
.vmw-g-grid { position: absolute; left: 62px; right: 0; top: 0; bottom: 0; z-index: 4; background: rgba(20,20,20,.88); display: flex; flex-direction: column; align-items: center; padding-top: 26px; animation: vmwfade .15s; }
.vmw-g-searchwrap { display: flex; align-items: center; gap: 8px; width: 320px; height: 36px; border-radius: 18px; background: rgba(255,255,255,.12); padding: 0 14px; color: #ddd; }
.vmw-g-search { flex: 1; background: transparent; border: none; outline: none; color: #fff; font: inherit; font-size: 14px; user-select: text; }
.vmw-g-search::placeholder { color: rgba(255,255,255,.55); }
.vmw-g-gridapps { display: grid; grid-template-columns: repeat(6, 112px); gap: 14px; margin-top: 34px; }
.vmw-g-gridapp { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 4px; border-radius: 12px; font-size: 12px; text-align: center; cursor: default; outline: none; }
.vmw-g-gridapp:hover, .vmw-g-gridapp:focus { background: rgba(255,255,255,.12); }
.vmw-g-qs { position: absolute; right: 8px; top: 34px; width: 340px; background: #2e2e2e; color: #fff; border-radius: 18px; padding: 14px; z-index: 6; box-shadow: 0 8px 26px rgba(0,0,0,.6); display: flex; flex-direction: column; gap: 12px; font-size: 13px; }
.vmw-g-qs-row { display: flex; align-items: center; gap: 8px; }
.vmw-g-qs-sp { flex: 1; }
.vmw-g-qs-rb { width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(255,255,255,.1); color: #fff; display: flex; align-items: center; justify-content: center; padding: 0; }
.vmw-g-qs-rb:hover { background: rgba(255,255,255,.2); }
.vmw-g-qs-pm { background: rgba(255,255,255,.07); border-radius: 12px; padding: 6px; }
.vmw-g-qs-pmh { font-weight: 700; padding: 6px 10px; }
.vmw-g-qs-pmi { padding: 8px 10px; border-radius: 8px; cursor: default; }
.vmw-g-qs-pmi:hover { background: rgba(255,255,255,.1); }
.vmw-g-qs-sep { height: 1px; background: rgba(255,255,255,.12); margin: 4px 6px; }
.vmw-g-qs-slider { display: flex; align-items: center; gap: 10px; padding: 0 4px; }
.vmw-g-qs-track { flex: 1; height: 6px; border-radius: 3px; background: rgba(255,255,255,.2); }
.vmw-g-qs-track div { width: 62%; height: 100%; border-radius: 3px; background: #e95420; }
.vmw-g-qs-pills { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vmw-g-qs-pill { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 22px; background: rgba(255,255,255,.1); min-height: 42px; }
.vmw-g-qs-pill.on { background: #e95420; }
.vmw-g-qs-pill b { display: block; font-size: 12.5px; }
.vmw-g-qs-pill small { display: block; font-size: 11px; opacity: .85; }
.vmw-g-modal { position: absolute; inset: 0; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; z-index: 10; }
.vmw-g-dlg { width: 380px; background: #303030; color: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 40px rgba(0,0,0,.6); text-align: center; }
.vmw-g-dlg-t { font-size: 18px; font-weight: 700; padding: 22px 20px 6px; }
.vmw-g-dlg-m { padding: 0 24px 22px; font-size: 13px; color: #ddd; line-height: 1.5; }
.vmw-g-dlg-b { display: flex; border-top: 1px solid rgba(255,255,255,.1); }
.vmw-g-dlg-b button { flex: 1; height: 46px; border: none; background: transparent; color: #fff; font: inherit; font-size: 13px; font-weight: 700; border-right: 1px solid rgba(255,255,255,.1); }
.vmw-g-dlg-b button:last-child { border-right: none; }
.vmw-g-dlg-b button:hover { background: rgba(255,255,255,.08); }
.vmw-g-dlg-b button.danger { color: #ff7b63; }
.ctx-menu.vmw-gmenu { background: #fafafa; border-radius: 12px; font-family: 'Ubuntu', 'Cantarell', 'Segoe UI', sans-serif; font-size: 13px; min-width: 220px; padding: 6px; box-shadow: 0 6px 20px rgba(0,0,0,.35); }
.ctx-menu.vmw-gmenu .ctx-item { height: 30px; border-radius: 6px; }
.ctx-menu.vmw-gmenu .ctx-item:hover:not(.disabled) { background: rgba(0,0,0,.07); }

/* GNOME (libadwaita) windows */
.vmw-g-win { position: absolute; background: #fafafa; color: #2e2e2e; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 2px 6px rgba(0,0,0,.25), 0 12px 32px rgba(0,0,0,.45); outline: 1px solid rgba(0,0,0,.25); }
.vmw-g-win.max { left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; border-radius: 0; }
.vmw-g-wh { height: 42px; flex: none; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 6px; background: #ebebeb; border-bottom: 1px solid #d6d6d6; cursor: default; }
.vmw-g-win:not(.focus) .vmw-g-wh { background: #f4f4f4; color: #8a8a8a; }
.vmw-g-whl, .vmw-g-whr { display: flex; align-items: center; gap: 4px; }
.vmw-g-whr { justify-content: flex-end; }
.vmw-g-wt { font-weight: 700; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 360px; }
.vmw-g-wbtn { width: 24px; height: 24px; border-radius: 50%; border: none; background: rgba(0,0,0,.08); color: #2e2e2e; display: flex; align-items: center; justify-content: center; padding: 0; margin-left: 6px; }
.vmw-g-wbtn:hover { background: rgba(0,0,0,.15); }
.vmw-g-hb { height: 30px; min-width: 32px; border-radius: 6px; border: none; background: transparent; color: #2e2e2e; display: flex; align-items: center; justify-content: center; padding: 0 6px; }
.vmw-g-hb:hover { background: rgba(0,0,0,.08); }
.vmw-g-wb { flex: 1; min-height: 0; position: relative; display: flex; flex-direction: column; }
.vmw-g-stub { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #666; }
.vmw-g-stub-t { font-size: 18px; color: #2e2e2e; font-weight: 700; }
.vmw-g-dim { color: #777; }

/* terminal */
.vmw-g-termwin .vmw-g-wh { background: #303030; border-bottom-color: #1e1e1e; color: #fff; }
.vmw-g-termwin:not(.focus) .vmw-g-wh { background: #262626; color: #aaa; }
.vmw-g-termwin .vmw-g-wbtn { background: rgba(255,255,255,.1); color: #fff; }
.vmw-g-termwin .vmw-g-wbtn:hover { background: rgba(255,255,255,.2); }
.vmw-g-termwin .vmw-g-hb { color: #fff; }
.vmw-g-termwin .vmw-g-hb:hover { background: rgba(255,255,255,.1); }
.vmw-g-term { flex: 1; min-height: 0; overflow-y: auto; background: #171421; color: #d0cfcc; font-family: 'Ubuntu Mono', 'Cascadia Mono', Consolas, 'Courier New', monospace; font-size: 14px; line-height: 1.3; padding: 4px 6px 10px; outline: none; user-select: text; cursor: text; }
.vmw-g-tl { white-space: pre-wrap; word-break: break-all; min-height: 1.3em; }
.vmw-g-tprompt { display: flex; }
.vmw-g-tprompt > span { white-space: pre; flex: none; }
.vmw-g-term-in { flex: 1; min-width: 20px; background: transparent; border: none; outline: none; color: inherit; font: inherit; padding: 0; margin: 0; caret-color: #d0cfcc; user-select: text; }
.vmw-g-term-in.secret { color: transparent; caret-color: #d0cfcc; width: 60%; }
.vmw-g-term .tg { color: #26a269; font-weight: 700; }
.vmw-g-term .tb { color: #2a7bde; font-weight: 700; }
.vmw-g-term .tbd { color: #2a7bde; font-weight: 700; }
.vmw-g-term .tc { color: #2aa1b3; }
.vmw-g-term .tu { color: #a2734c; }
.vmw-g-term .tm { color: #c061cb; }
.vmw-g-term .ty { color: #e9ad0c; }
.vmw-g-term .tbl { color: #33c7de; }
.vmw-g-term .tr { color: #f66151; font-weight: 700; }
.vmw-g-term::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); background-clip: content-box; }

/* files */
.vmw-g-fcrumb { font-weight: 700; font-size: 13px; padding: 4px 10px; background: rgba(0,0,0,.06); border-radius: 6px; }
.vmw-g-files { flex: 1; min-height: 0; display: flex; }
.vmw-g-fside { width: 180px; flex: none; background: #ebebeb; padding: 6px; display: flex; flex-direction: column; gap: 1px; overflow: auto; }
.vmw-g-fplace { display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 10px; border-radius: 6px; font-size: 13px; cursor: default; }
.vmw-g-fplace:hover { background: rgba(0,0,0,.06); }
.vmw-g-fplace.sel { background: rgba(0,0,0,.1); font-weight: 700; }
.vmw-g-fplace span { display: inline-flex; }
.vmw-g-fmain { flex: 1; min-width: 0; overflow: auto; padding: 14px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; background: #fff; }
.vmw-g-fitem { width: 100px; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 4px; border-radius: 8px; font-size: 12.5px; text-align: center; outline: none; cursor: default; }
.vmw-g-fitem:hover { background: rgba(0,0,0,.05); }
.vmw-g-fitem.sel { background: rgba(53,132,228,.2); }
.vmw-g-fempty { flex: 1; align-self: center; display: flex; flex-direction: column; align-items: center; gap: 10px; color: #888; font-size: 16px; padding-top: 60px; opacity: .8; }

/* firefox */
.vmw-g-ffwin .vmw-g-wh { background: #f0f0f4; }
.vmw-g-fftabs { height: 40px; flex: none; display: flex; align-items: center; gap: 4px; padding: 0 8px; background: #f0f0f4; }
.vmw-g-fftab { height: 32px; min-width: 180px; max-width: 240px; display: flex; align-items: center; gap: 8px; padding: 0 12px; background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.15); font-size: 12px; white-space: nowrap; overflow: hidden; }
.vmw-g-ffbar { height: 40px; flex: none; display: flex; align-items: center; gap: 4px; padding: 0 8px; background: #f9f9fb; border-bottom: 1px solid #e0e0e6; }
.vmw-g-ffnb { width: 32px; height: 32px; border: none; border-radius: 4px; background: transparent; color: #333; display: flex; align-items: center; justify-content: center; padding: 0; }
.vmw-g-ffnb:hover { background: rgba(0,0,0,.08); }
.vmw-g-ffurl { flex: 1; height: 32px; border-radius: 4px; border: 1px solid transparent; background: #f0f0f4; padding: 0 12px; font: inherit; font-size: 13px; outline: none; color: #15141a; user-select: text; }
.vmw-g-ffurl:focus { border-color: #0061e0; background: #fff; }
.vmw-g-ffcontent { flex: 1; min-height: 0; overflow: auto; background: #f9f9fb; color: #15141a; }
.vmw-g-ffhome { display: flex; flex-direction: column; align-items: center; gap: 26px; padding-top: 60px; }
.vmw-g-ffsearch { width: min(560px, 80%); height: 46px; border-radius: 6px; border: 1px solid #cfcfd8; padding: 0 16px; font: inherit; font-size: 15px; outline: none; box-shadow: 0 2px 8px rgba(0,0,0,.08); user-select: text; }
.vmw-g-ffsearch:focus { border-color: #0061e0; }
.vmw-g-ffloading { display: flex; align-items: center; justify-content: center; height: 100%; }
.vmw-g-fferr { max-width: 560px; margin: 70px auto; line-height: 1.5; font-size: 14px; }
.vmw-g-fferr h1 { font-size: 24px; font-weight: 400; margin-bottom: 18px; }
.vmw-g-fferr ul { padding-left: 20px; }
.vmw-g-fferr .vmw-g-btn.primary { background: #0061e0; border-color: #0061e0; }
.vmw-g-ffpage { max-width: 620px; margin: 60px auto; font-size: 14px; line-height: 1.6; }
.vmw-g-ffpage h1 { font-size: 28px; font-weight: 400; }

/* settings */
.vmw-g-settings { flex: 1; min-height: 0; display: flex; }
.vmw-g-sside { width: 200px; flex: none; background: #ebebeb; padding: 8px; display: flex; flex-direction: column; gap: 2px; overflow: auto; }
.vmw-g-sitem { padding: 9px 12px; border-radius: 6px; font-size: 13px; cursor: default; }
.vmw-g-sitem:hover { background: rgba(0,0,0,.06); }
.vmw-g-sitem.sel { background: rgba(0,0,0,.1); font-weight: 700; }
.vmw-g-smain { flex: 1; min-width: 0; overflow: auto; padding: 18px 30px; background: #fafafa; }
.vmw-g-smain h2 { font-size: 14px; font-weight: 700; margin: 14px 0 8px; }
.vmw-g-smain h3 { font-size: 13px; font-weight: 700; margin: 14px 0 8px; color: #555; }
.vmw-g-scard { background: #fff; border-radius: 12px; box-shadow: 0 0 0 1px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.08); overflow: hidden; }
.vmw-g-srow { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 8px 14px; border-bottom: 1px solid #eee; font-size: 13px; }
.vmw-g-srow:last-child { border-bottom: none; }
.vmw-g-srow .fl-toggle.on { background: #3584e4; border-color: #3584e4; }
.vmw-g-about-logo { display: flex; justify-content: center; margin-top: 10px; }

/* Windows guest (condensed) */
.vmw-g-winboot { background: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 70px; }
.vmw-g-winlogo { width: 80px; height: 80px; }
.vmw-g-wintext { font-family: 'Segoe UI', sans-serif; font-size: 20px; color: #fff; margin-top: -40px; }
.vmw-g-winsetup { background: linear-gradient(135deg, #0b3a8a, #3a1d78); display: flex; align-items: center; justify-content: center; font-family: 'Segoe UI', sans-serif; }
.vmw-g-wsdlg { width: min(640px, 80%); background: #fff; color: #1a1a1a; padding: 0 0 18px; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.vmw-g-wsdlg-title { background: #fff; padding: 8px 12px; font-size: 12px; border-bottom: 1px solid #ddd; }
.vmw-g-wsdlg h2 { font-weight: 400; font-size: 22px; margin: 18px 26px 10px; color: #1a3a6e; }
.vmw-g-wsdlg p { margin: 6px 26px; font-size: 13px; line-height: 1.5; }
.vmw-g-wsdlg .vmw-g-dim { margin: 6px 26px; font-size: 13px; }
.vmw-g-wssteps { margin: 6px 26px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.vmw-g-wsstep { color: #999; }
.vmw-g-wsstep.cur { color: #1a1a1a; font-weight: 600; }
.vmw-g-wsstep.done { color: #1a1a1a; }
.vmw-g-wsstep.done::before { content: '\2713  '; color: #2a8a3e; }
.vmw-g-wsdlg-btns { display: flex; justify-content: flex-end; padding: 10px 26px 0; }
.vmw-g-wsbtn { min-width: 80px; height: 26px; }
.vmw-g-windesk { background: radial-gradient(ellipse 50% 60% at 60% 55%, #7fb8ff 0%, #2f6fd8 45%, #13358a 100%); font-family: 'Segoe UI', sans-serif; }
.vmw-g-windesk-icons { position: absolute; left: 8px; top: 8px; }
.vmw-g-wdi { width: 76px; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 12px; text-shadow: 0 1px 2px #000; }
.vmw-g-wtaskbar { position: absolute; left: 0; right: 0; bottom: 0; height: 44px; background: rgba(240,240,245,.9); display: flex; align-items: center; justify-content: center; color: #1a1a1a; }
.vmw-g-wtb-c { display: flex; gap: 4px; }
.vmw-g-wtb-i { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 4px; }
.vmw-g-wtb-i:hover { background: rgba(0,0,0,.06); }
.vmw-g-wtb-r { position: absolute; right: 10px; display: flex; align-items: center; gap: 10px; font-size: 11px; text-align: right; }
.vmw-g-wclock { line-height: 1.3; }
