/* =========================================================
   XHCOS 伪系统 · 样式系统
   - HERO 主题（XHCOS 原生，浅/深）
   - Ubuntu 24.04 / Yaru GNOME 外壳（顶栏 + 左侧 Dock + 应用概览）
   品牌色：暖橙 #F2A65A / 奶白 #FFF6EC / 墨黑 #2B2B2B / 柚子黄 #FFD54A
   Ubuntu：橙 #E95420 / 茄紫 #2C001E
   ========================================================= */

/* Google Sans Regular · 本地字体（assets/fonts/GoogleSans-Regular.ttf）
   网页英文字体统一使用 Google Sans Regular；中文走 PingFang/雅黑 fallback */
@font-face {
  font-family: 'Google Sans Regular';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/GoogleSans-Regular.ttf') format('truetype');
}

:root {
  --xh-orange:#F2A65A;
  --xh-yuzu:#FFD54A;
  --xh-cream:#FFF6EC;
  --xh-ink:#2B2B2B;
  --ubuntu-orange:#E95420;
  --ubuntu-aubergine:#2C001E;

  --accent:var(--xh-orange);
  --accent-2:var(--xh-yuzu);

  --bg:var(--xh-cream);
  --surface:#ffffff;
  --surface-2:#fbf3e8;
  --text:var(--xh-ink);
  --text-dim:#7a6f63;
  --border:rgba(43,43,43,.12);
  --shadow:0 12px 40px rgba(43,43,43,.22);
  --win-radius:14px;
  --taskbar-h:52px;
  --topbar-h:28px;
  --win-top:0px;
  --win-bottom:var(--taskbar-h);
  --win-left:0px;
  --glass:rgba(255,255,255,.72);
}

[data-theme="dark"] {
  --bg:#16161a; --surface:#232329; --surface-2:#2c2c34;
  --text:#f3f1ee; --text-dim:#a59c90;
  --border:rgba(255,255,255,.10); --shadow:0 14px 44px rgba(0,0,0,.5);
  --glass:rgba(35,35,41,.72);
}

* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; margin:0; }
body { font-family:'Google Sans Regular','Google Sans','Segoe UI','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  color:var(--text); overflow:hidden; user-select:none; background:#000; }

/* ============ Yaru symbolic / mimetype 图标 ============
   单色 symbolic SVG：深色容器（顶栏/控制中心/电源菜单/dock）用 invert(1) 变白，
   浅色容器（设置/文件管理器/右键菜单）默认黑色直接可见。 */
img.sym { width:16px; height:16px; display:inline-block; vertical-align:middle; flex:none; }
img.mime { width:34px; height:34px; object-fit:contain; display:inline-block; vertical-align:middle; }
.tb-ico img.sym, .tb-quick img.sym, .tb-power img.sym,
.power-menu img.sym, .cc img.sym, .overview img.sym, .topbar img.sym { filter:invert(1); }
.cc-tog.on img.sym { filter:none; }
.ctx-item img.sym { width:15px; height:15px; }
.set-nav-item img.sym, .set-row img.sym { width:16px; height:16px; }
.fm-side-item img.sym { width:15px; height:15px; }
.fm-side-item .psi { display:inline-flex; align-items:center; }
.amd-ic img.mime { width:20px; height:20px; }
.br-page img.sym { width:20px; height:20px; }
.slide-ico-img { width:64px; height:64px; object-fit:contain; }
body[data-shell="gnome"]{ --accent:var(--ubuntu-orange); --accent-2:#F99B11; --win-top:var(--topbar-h); --win-bottom:0px; }
body[data-shell="gnome"][data-vstyle="win11"],
body[data-shell="gnome"][data-vstyle="win10"]{ --win-top:0px; }
[data-vstyle="win11"] #topbar,
[data-vstyle="win10"] #topbar { display:none !important; }
.hidden { display:none !important; }

/* ---------------- 开机动画 ---------------- */
.boot { position:fixed; inset:0; z-index:9000;
  background:radial-gradient(circle at 50% 38%, #2b2b2b 0%, #161616 70%, #0a0a0a 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; gap:14px; }
.boot-logo { max-width:min(420px,72vw); height:auto; animation:pulse 2.2s ease-in-out infinite; filter:drop-shadow(0 0 22px rgba(242,166,90,.35)); }
@keyframes pulse { 0%,100%{ transform:scale(1); opacity:.96 } 50%{ transform:scale(1.04); opacity:1 } }
.boot-sub { font-size:13px; letter-spacing:2px; color:#cdbca8; opacity:.85; }
.boot-bar { width:240px; height:5px; border-radius:99px; background:rgba(255,255,255,.14); overflow:hidden; margin-top:8px; }
.boot-bar i { display:block; height:100%; width:0%; border-radius:99px; background:linear-gradient(90deg,var(--xh-orange),var(--xh-yuzu)); transition:width .25s ease; }
.boot-tip { font-size:12px; color:#b9a892; min-height:16px; }
.boot-install { margin-top:18px; background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff; padding:8px 18px; border-radius:99px; cursor:pointer; font-size:13px; }
.boot-install:hover { background:rgba(255,255,255,.12); }

/* ---------------- ISOLINUX 启动菜单（ISO 开机首屏） ---------------- */
.isolinux { position:fixed; inset:0; z-index:9000; background:#000; color:#e8e8e8;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  font-family:"Cascadia Code","Consolas","Courier New",monospace; }
.iso-title { font-size:42px; font-weight:800; letter-spacing:8px; color:#fff; text-shadow:0 0 18px rgba(233,84,32,.5); }
.iso-sub { font-size:13px; color:#9a9a9a; letter-spacing:1px; margin-bottom:20px; }
.iso-menu { list-style:none; padding:0; margin:0; width:440px; max-width:92vw; }
.iso-opt { padding:9px 18px; font-size:15px; border-radius:5px; cursor:pointer; color:#d4d4d4; transition:background .08s; }
.iso-opt.sel { background:var(--ubuntu-orange); color:#fff; font-weight:600; }
.iso-foot { margin-top:26px; font-size:12px; color:#7c7c7c; }
.iso-foot b { color:#cfcfcf; padding:0 2px; }
.iso-foot #isoCount { color:var(--ubuntu-orange); font-weight:700; }

/* ---------------- 内存测试 ---------------- */
.memtest { position:fixed; inset:0; z-index:9100; background:#000; color:#33ff66;
  display:flex; align-items:center; justify-content:center; font-family:"Cascadia Code","Consolas",monospace; }
.memtest pre { font-size:13px; line-height:1.5; white-space:pre; }

/* ---------------- 安装向导（Ubiquity / XHCOS 风格） ---------------- */
.installer { position:fixed; inset:0; z-index:9200; background:#f4f3f2; color:#2b2b2b; }
.inst { display:flex; height:100%; }
.inst-side { width:230px; background:#2c001e; color:#fff; padding:26px 20px; display:flex; flex-direction:column; }
.inst-logo { font-size:26px; font-weight:800; letter-spacing:3px; background:linear-gradient(90deg,#f2a65a,#ffd54a); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:26px; }
.inst-logo-img { max-width:160px; height:auto; margin-bottom:8px; filter:drop-shadow(0 0 10px rgba(255,255,255,.15)); }
.inst-side-title { font-size:12px; letter-spacing:1px; color:rgba(255,255,255,.55); text-transform:uppercase; margin-bottom:22px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.12); }
.inst-steps { list-style:none; padding:0; margin:0; position:relative; }
.inst-steps::before { content:''; position:absolute; left:13px; top:18px; bottom:18px; width:2px; background:rgba(255,255,255,.18); }
.inst-steps li { position:relative; display:flex; align-items:center; gap:12px; padding:10px 6px; font-size:13px; opacity:.55; }
.inst-steps li .node { position:relative; flex:0 0 14px; width:14px; height:14px; border-radius:50%; border:2px solid rgba(255,255,255,.4); background:#2c001e; box-sizing:border-box; z-index:2; }
.inst-steps li .lbl { flex:1; display:flex; align-items:flex-start; gap:10px; line-height:1.25; }
.inst-steps li .num { font-size:11px; font-weight:700; color:rgba(255,255,255,.4); min-width:18px; padding-top:1px; }
.inst-steps li .txt { display:flex; flex-direction:column; }
.inst-steps li .main { font-size:13px; }
.inst-steps li .desc { font-size:11px; color:rgba(255,255,255,.45); margin-top:2px; }
.inst-steps li.active { opacity:1; }
.inst-steps li.active .main { font-weight:700; }
.inst-steps li.active .num { color:var(--ubuntu-orange); }
.inst-steps li.active .desc { color:rgba(255,255,255,.75); }
.inst-steps li.active .node { background:var(--ubuntu-orange); border-color:var(--ubuntu-orange); box-shadow:0 0 0 4px rgba(233,84,32,.28); }
.inst-steps li.done .num { color:#2e9e4f; }
.inst-steps li.done .desc { color:rgba(255,255,255,.55); }
.inst-steps li.done .node { background:#2e9e4f; border-color:#2e9e4f; }
.inst-steps li.done .node::after { content:'✓'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:9px; color:#fff; font-weight:700; }
.inst-main { flex:1; display:flex; flex-direction:column; padding:30px 40px; max-width:780px; }
.inst-head h2 { margin:0 0 4px; font-size:22px; } .inst-head p { margin:0 0 22px; color:#7a6f63; font-size:13px; }
.inst-body { flex:1; } .inst-foot { display:flex; justify-content:flex-end; gap:12px; padding-top:18px; border-top:1px solid rgba(0,0,0,.08); }
.inst-input { width:100%; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,.18); background:#fff; font-size:14px; margin:6px 0 14px; }
.inst-note { font-size:12px; color:#7a6f63; }
.inst-radio { margin:8px 0; font-size:14px; } .inst-radio label, .inst-check { display:flex; gap:8px; align-items:center; cursor:pointer; }
.inst-check { margin-top:14px; font-size:14px; }
.inst-disk { margin-top:16px; border:1px solid rgba(0,0,0,.15); border-radius:10px; padding:14px; background:#fff; }
.inst-disk-bar { height:14px; border-radius:99px; background:#e7e3df; overflow:hidden; }
.inst-disk-bar span { display:block; height:100%; width:100%; background:linear-gradient(90deg,#f2a65a,#e95420); }
.inst-disk-label { font-size:12px; color:#7a6f63; margin-top:8px; }
.inst-prog { max-width:none; margin:0; text-align:left; }
.inst-install-wrap { display:block; margin-top:18px; }
.inst-prog-col { min-width:0; }
.inst-prog-header { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:8px; }
.inst-pct { font-size:34px; font-weight:800; color:var(--ubuntu-orange); line-height:1; margin:0; }
.inst-eta { font-size:12px; color:#7a6f63; margin:0; }
.inst-phase { font-size:13px; font-weight:600; color:#5b554d; margin-bottom:8px; }
.inst-toggle { margin-top:10px; align-self:flex-start; font-size:12px; padding:6px 12px; background:#fff; border:1px solid rgba(0,0,0,.18); color:#5b554d; }
.inst-rawlog { background:#1d1d22; color:#cfe8c5; font-family:"Consolas","Courier New",monospace; font-size:11px; line-height:1.5; padding:10px 12px; border-radius:8px; max-height:170px; overflow:auto; margin:8px 0 0; white-space:pre-wrap; }
.inst-rawlog .rl { padding:1px 0; opacity:.92; }
.inst-slides { width:100%; height:150px; min-height:150px; border-radius:14px; padding:18px 26px; margin-bottom:18px; color:#fff; text-align:left; overflow:hidden;
  background:linear-gradient(120deg,#2c001e,#5e2750 55%,#77216f); display:flex; align-items:center; }
.slide { display:none; align-items:center; gap:20px; width:100%; }
.slide.active { display:flex; animation:slideFade .6s ease; }
.slide-ico { font-size:56px; flex:0 0 80px; text-align:center; }
.slide-txt { flex:1; min-width:0; }
.slide h3 { margin:0 0 6px; font-size:20px; }
.slide p { margin:0; font-size:14px; opacity:.85; line-height:1.5; }
@keyframes slideFade { from{opacity:0; transform:translateX(10px);} to{opacity:1; transform:none;} }
.inst-pbar { height:12px; border-radius:99px; background:#e7e3df; overflow:hidden; margin:4px 0 0; }
.inst-pbar i { position:relative; overflow:hidden; display:block; height:100%; width:0%; background:linear-gradient(90deg,#f2a65a,#e95420); transition:width .25s ease; }
.inst-pbar i::after { content:''; position:absolute; inset:0; background-image:linear-gradient(45deg, rgba(255,255,255,.28) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.28) 50%, rgba(255,255,255,.28) 75%, transparent 75%, transparent); background-size:22px 22px; animation:stripes 1s linear infinite; }
@keyframes stripes { from{ background-position:0 0; } to{ background-position:22px 0; } }
.inst-plog { text-align:left; font-size:13px; color:#5b554d; max-height:210px; overflow:auto; } .inst-plog div { padding:3px 0; }
.inst-done { text-align:center; margin-top:13%; }
.inst-done-note { font-size:12px; color:#7a6f63; margin:8px 0 16px; }
.inst-done-ico { width:72px; height:72px; margin:0 auto 16px; border-radius:50%; background:#2e9e4f; color:#fff; font-size:38px; display:flex; align-items:center; justify-content:center; }

/* ---------------- 登录 ---------------- */
.login { position:fixed; inset:0; z-index:8000; background:linear-gradient(135deg,#2b2b2b 0%, #1d1d22 100%);
  display:flex; align-items:center; justify-content:center; }
.login-card { width:340px; padding:34px 30px; border-radius:20px; text-align:center;
  background:rgba(255,255,255,.06); backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.12); color:#fff; }
.login-logo { width:220px; height:auto; margin:0 auto 14px; display:block; filter:drop-shadow(0 6px 22px rgba(242,166,90,.35)); }
.login-user { font-size:22px; font-weight:700; } .login-host { font-size:12px; color:#cbb9a5; margin:4px 0 18px; }
.login-pwd { width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.25); color:#fff; font-size:14px; outline:none; }
.login-pwd:focus { border-color:var(--xh-orange); }
.login-btn { width:100%; margin-top:12px; padding:12px; border:none; border-radius:12px; cursor:pointer; font-size:15px; font-weight:700; color:#2b2b2b;
  background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); transition:transform .12s ease, filter .12s ease; }
.login-btn:hover { filter:brightness(1.05); } .login-btn:active { transform:scale(.98); }
.login-hint { font-size:12px; color:#ff9b9b; min-height:16px; margin-top:8px; }
.login-foot { font-size:11px; color:#9c8e7e; margin-top:18px; }

/* ---------------- 桌面 ---------------- */
.desktop { position:fixed; inset:0; z-index:10; }
.wallpaper { position:absolute; inset:0; z-index:0; transition:background .4s ease;
  background: radial-gradient(1200px 600px at 80% -10%, rgba(255,213,74,.35), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(242,166,90,.45), transparent 55%),
    linear-gradient(135deg,#fff6ec 0%, #ffe9cf 100%); }
[data-theme="dark"] .wallpaper { background: radial-gradient(1200px 600px at 80% -10%, rgba(255,213,74,.18), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(242,166,90,.22), transparent 55%), linear-gradient(135deg,#1b1b20 0%, #2a2118 100%); }
body[data-shell="gnome"] .wallpaper { background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.10), transparent 40%),
    linear-gradient(160deg,#3a0f4f 0%, #5e2750 38%, #77216f 56%, #2b6ca3 82%, #1e5a8a 100%); }

.icons { position:absolute; inset:0 0 var(--taskbar-h) 0; z-index:1; padding:14px; }
.dicon { width:88px; padding:8px 4px; margin:0 0 10px 0; border-radius:12px; text-align:center; cursor:pointer; transition:background .12s ease; }
.dicon:hover { background:rgba(255,255,255,.28); }
[data-theme="dark"] .dicon:hover { background:rgba(255,255,255,.08); }
.dicon.sel { background:rgba(242,166,90,.32); outline:1px solid rgba(242,166,90,.6); }
.dicon .di-emoji { font-size:40px; line-height:1; filter:drop-shadow(0 3px 6px rgba(0,0,0,.25)); }
.dicon .di-label { font-size:12px; margin-top:5px; color:var(--text); text-shadow:0 1px 2px rgba(255,255,255,.6); word-break:break-word; }
[data-theme="dark"] .dicon .di-label { text-shadow:0 1px 2px rgba(0,0,0,.6); }

/* ---------------- 窗口（通用） ---------------- */
.window { position:absolute; z-index:100; min-width:300px; min-height:200px; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--win-radius); box-shadow:var(--shadow); overflow:hidden; display:flex; flex-direction:column; }
.window.maximized { inset:var(--win-top) 0 var(--win-bottom) var(--win-left) !important; width:auto !important; height:auto !important; border-radius:0; }

/* 窗口打开 / 关闭动效（Ubuntu / Yaru 风格：淡入 + 轻微缩放） */
@keyframes winOpen { from { opacity:0; transform:scale(.82); } to { opacity:1; transform:scale(1); } }
@keyframes winClose { from { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(.82); } }
.window.anim-open { animation:winOpen .2s cubic-bezier(.2,.9,.3,1) both; }
.window.anim-close { animation:winClose .15s ease-in both; pointer-events:none; }
.win-bar { height:38px; flex:0 0 38px; display:flex; align-items:center; gap:8px; padding:0 10px;
  background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 70%, var(--accent-2))); color:#2b2b2b; cursor:default; touch-action:none; }
[data-theme="dark"] .win-bar { color:#fff; }
.win-title { font-size:13px; font-weight:700; flex:1; display:flex; align-items:center; gap:7px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.win-btns { display:flex; gap:6px; }
.win-btn { width:14px; height:14px; border-radius:50%; border:none; cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; font-size:9px; color:rgba(0,0,0,.55); font-weight:900; }
.win-min { background:#ffd54a; } .win-max { background:#a7e08a; } .win-close { background:#ff8a7a; }
.win-btn:hover { filter:brightness(1.08); }
.win-body { flex:1; overflow:auto; position:relative; background:var(--surface); }
/* 八向缩放把手（边 + 角），仅在未最大化时可拖 */
.win-resize { position:absolute; z-index:6; }
.win-resize[data-dir="e"]{ right:0; top:0; width:6px; height:100%; cursor:ew-resize; }
.win-resize[data-dir="w"]{ left:0; top:0; width:6px; height:100%; cursor:ew-resize; }
.win-resize[data-dir="s"]{ left:0; bottom:0; width:100%; height:6px; cursor:ns-resize; }
.win-resize[data-dir="n"]{ left:0; top:0; width:100%; height:6px; cursor:ns-resize; }
.win-resize[data-dir="se"]{ right:0; bottom:0; width:18px; height:18px; cursor:nwse-resize;
  background:linear-gradient(135deg, transparent 50%, var(--border) 50%, var(--border) 60%, transparent 60%, transparent 72%, var(--border) 72%, var(--border) 82%, transparent 82%); }
.win-resize[data-dir="sw"]{ left:0; bottom:0; width:18px; height:18px; cursor:nesw-resize; }
.win-resize[data-dir="ne"]{ right:0; top:0; width:18px; height:18px; cursor:nesw-resize; }
.win-resize[data-dir="nw"]{ left:0; top:0; width:18px; height:18px; cursor:nwse-resize; }
.window.maximized .win-resize { display:none; }

/* Yaru / GNOME 窗口外观：标题居中、控件在右、Yaru 配色 */
body[data-shell="gnome"] .window { border-radius:12px; box-shadow:0 16px 48px rgba(0,0,0,.45); }
body[data-shell="gnome"] .win-bar { background:#f2f1f4; color:#2b2b2b; height:42px; padding:0 12px;
  border-bottom:1px solid rgba(0,0,0,.08); }
body[data-shell="gnome"][data-theme="dark"] .win-bar { background:#2c2c30; color:#f3f1ee; }
body[data-shell="gnome"] .win-title { position:absolute; left:0; right:0; text-align:center; justify-content:center; pointer-events:none; }
body[data-shell="gnome"] .win-btns { position:relative; z-index:2; margin-left:auto; }
body[data-shell="gnome"] .win-min, body[data-shell="gnome"] .win-max { background:transparent; color:#5c5c5c; border:1px solid rgba(0,0,0,.18); }
body[data-shell="gnome"][data-theme="dark"] .win-min, body[data-shell="gnome"][data-theme="dark"] .win-max { color:#cfcfcf; border-color:rgba(255,255,255,.22); }
body[data-shell="gnome"] .win-close { background:transparent; color:#5c5c5c; border:1px solid rgba(0,0,0,.18); }
body[data-shell="gnome"][data-theme="dark"] .win-close { color:#cfcfcf; border-color:rgba(255,255,255,.22); }
body[data-shell="gnome"] .win-close:hover { background:var(--ubuntu-orange); color:#fff; border-color:var(--ubuntu-orange); }
body[data-shell="gnome"] .win-min:hover, body[data-shell="gnome"] .win-max:hover { background:rgba(0,0,0,.08); }

/* ---------------- HERO 任务栏 ---------------- */
.taskbar { position:fixed; left:0; right:0; bottom:0; height:var(--taskbar-h); z-index:500; display:flex; align-items:center; gap:8px; padding:0 10px;
  background:var(--glass); backdrop-filter:blur(18px) saturate(1.3); border-top:1px solid var(--border); }
.start-btn { width:42px; height:38px; border-radius:11px; border:none; cursor:pointer; background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu));
  display:flex; align-items:center; justify-content:center; transition:transform .12s ease; }
.start-btn:hover { transform:translateY(-1px); }
.task-apps { flex:1; display:flex; align-items:center; gap:6px; overflow:hidden; }
.task-item { display:flex; align-items:center; gap:7px; padding:6px 12px; border-radius:10px; cursor:pointer; background:transparent; color:var(--text); font-size:13px; max-width:190px; border:1px solid transparent; transition:background .12s ease; }
.task-item:hover { background:rgba(242,166,90,.18); } .task-item.active { background:rgba(242,166,90,.32); border-color:rgba(242,166,90,.55); }
.task-item .ti-emoji { font-size:18px; } .task-item .ti-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tray { display:flex; align-items:center; gap:12px; color:var(--text); font-size:13px; padding-left:6px; }
.tray-ico { opacity:.7; } .clock { font-variant-numeric:tabular-nums; font-weight:600; min-width:46px; text-align:center; }

/* ---------------- HERO 开始菜单 ---------------- */
.startmenu { position:fixed; left:10px; bottom:calc(var(--taskbar-h) + 8px); width:380px; z-index:600; background:var(--glass);
  backdrop-filter:blur(22px) saturate(1.3); border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow); padding:14px; color:var(--text); }
.sm-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.sm-avatar { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:20px; color:#2b2b2b; background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); }
.sm-name { font-weight:700; } .sm-mail { font-size:12px; color:var(--text-dim); }
.sm-search { width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--border); background:var(--surface); color:var(--text); outline:none; margin-bottom:12px; }
.sm-search:focus { border-color:var(--accent); }
.sm-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; max-height:340px; overflow:auto; }
.sm-app { display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px 4px; border-radius:12px; cursor:pointer; transition:background .12s; }
.sm-app:hover { background:rgba(242,166,90,.18); } .sm-app .sa-emoji { font-size:30px; } .sm-app .sa-label { font-size:11px; text-align:center; line-height:1.2; }
.sm-foot { display:flex; align-items:center; gap:8px; margin-top:12px; padding-top:10px; border-top:1px solid var(--border); }
.sm-power { flex:1; padding:9px; border-radius:10px; border:1px solid var(--border); cursor:pointer; background:var(--surface); color:var(--text); font-size:13px; font-weight:600; }
.sm-power:hover { background:rgba(242,166,90,.2); } .sm-ver { font-size:11px; color:var(--text-dim); }

/* ---------------- GNOME 顶栏 ---------------- */
.topbar { position:absolute; top:0; left:0; right:0; height:28px; z-index:8000; display:flex; align-items:center;
  background:rgba(44,0,30,.86); backdrop-filter:blur(14px); color:#fff; font-size:13px; padding:0 8px; }
.tb-left { display:flex; align-items:center; gap:10px; }
.tb-activities { background:transparent; border:none; color:#fff; font-weight:700; font-size:13px; cursor:pointer; padding:4px 8px; border-radius:6px; }
.tb-activities:hover { background:rgba(255,255,255,.14); }
.tb-app { font-weight:600; opacity:.9; }
.tb-center { position:absolute; left:0; right:0; text-align:center; font-weight:600; pointer-events:none; }
.tb-right { margin-left:auto; display:flex; align-items:center; gap:12px; }
.tb-ico { opacity:.85; cursor:default; } .tb-power { background:transparent; border:none; color:#fff; font-size:15px; cursor:pointer; padding:4px 8px; border-radius:6px; }
.tb-power:hover { background:rgba(255,255,255,.14); }

/* ---------------- GNOME 左侧 Dock ---------------- */
.dock { position:absolute; left:8px; top:36px; bottom:8px; width:64px; z-index:9000; border-radius:18px;
  background:rgba(44,0,30,.55); backdrop-filter:blur(18px) saturate(1.4); border:1px solid rgba(255,255,255,.08);
  display:flex; flex-direction:column; align-items:center; gap:8px; padding:10px 0; overflow:auto;
  box-shadow:0 8px 24px rgba(44,0,30,.45), 0 0 0 1px rgba(255,255,255,.06) inset; }
.dock-item { position:relative; width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center;
  font-size:26px; cursor:pointer; background:transparent; transition:transform .12s ease, background .12s; }
.dock-item:hover { transform:scale(1.08); background:rgba(255,255,255,.22); }
.dock-item .di-emoji { filter:drop-shadow(0 2px 3px rgba(0,0,0,.4)); }
.dock-item .running { position:absolute; left:-4px; top:50%; transform:translateY(-50%); width:4px; height:18px; border-radius:3px; background:#fff; }
.dock-sep { width:32px; height:1px; background:rgba(255,255,255,.18); margin:2px 0; }
.dock-trash { margin-top:auto; }

/* Dock 自动隐藏：有窗口最大化时滑出屏幕，鼠标靠左缘再滑入 */
.dock.autohide { opacity:0; transform:translateX(-72px); pointer-events:none; transition:opacity .18s ease, transform .18s ease; }
.dock.autohide.show { opacity:1; transform:translateX(0); pointer-events:auto; }
.dock-reveal { position:absolute; left:0; top:0; bottom:0; width:10px; z-index:8500; }
.dock-reveal.hidden { display:none; }

/* ---------------- GNOME 应用概览 ---------------- */
.overview { position:absolute; inset:0; z-index:9000; display:flex; flex-direction:column; align-items:center;
  background: linear-gradient(rgba(18,8,30,.35), rgba(18,8,30,.6)), url(icons/wallpaper-ubuntu.png) center/cover no-repeat; }
.ov-bg { display:none; }
.ov-search { position:relative; z-index:2; margin-top:48px; width:min(560px,80%); }
.ov-search input { width:100%; padding:12px 18px; border-radius:99px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.28); color:#fff; font-size:15px; outline:none; text-align:center; }
.ov-search input::placeholder { color:rgba(255,255,255,.55); }
.ov-grid { position:relative; z-index:2; display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:14px 10px;
  width:min(880px,86%); padding:30px 0 40px; overflow:auto; align-content:start; justify-content:center; }
.ov-app { display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; padding:10px 4px; border-radius:14px; transition:background .12s; }
.ov-app:hover { background:rgba(255,255,255,.12); }
.ov-app .oa-emoji { width:64px; height:64px; display:flex; align-items:center; justify-content:center; }
.ov-app .oa-label { font-size:13px; color:#fff; text-align:center; }

/* ---------------- 电源菜单 ---------------- */
.power-menu { position:absolute; top:34px; right:10px; z-index:9200; width:180px; background:rgba(30,10,24,.95); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:6px; display:flex; flex-direction:column; }
.power-menu button { text-align:left; padding:11px 14px; border:none; background:transparent; color:#fff; font-size:14px; border-radius:8px; cursor:pointer; display:flex; align-items:center; gap:9px; }
.power-menu button:hover { background:rgba(255,255,255,.14); }

/* ---------------- 关机屏 ---------------- */
.poweroff { position:fixed; inset:0; z-index:8500; background:#0a0a0a; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; }
.po-emblem { font-size:40px; font-weight:800; letter-spacing:5px; background:linear-gradient(90deg,var(--xh-orange),var(--xh-yuzu)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.po-text { font-size:15px; color:#b9a892; } .po-btn { padding:11px 26px; border-radius:12px; border:none; cursor:pointer; font-weight:700; color:#2b2b2b; background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); }

/* ---------------- 右键菜单 ---------------- */
.ctx { position:fixed; z-index:9400; min-width:180px; background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); padding:6px; }
.ctx-item { padding:9px 12px; border-radius:8px; cursor:pointer; font-size:13px; display:flex; gap:8px; align-items:center; }
.ctx-item:hover { background:rgba(242,166,90,.2); } .ctx-sep { height:1px; background:var(--border); margin:5px 4px; }

/* ---------------- 通用组件 ---------------- */
.btn { padding:8px 14px; border-radius:9px; border:1px solid var(--border); background:var(--surface); color:var(--text); cursor:pointer; font-size:13px; font-weight:600; }
.btn:hover { background:rgba(242,166,90,.18); }
.btn.primary { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border:none; }
.btn.primary:hover { filter:brightness(1.05); }
/* 安装器内的主按钮走 Ubuntu 橙 (#E95420)，更贴近真实安装界面 */
.inst .btn.primary { background:#E95420; color:#fff; border:none; }
.inst .btn.primary:hover { background:#d2401a; filter:none; }
.row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* 文件管理器 */
.fm-bar { display:flex; align-items:center; gap:8px; padding:9px 12px; border-bottom:1px solid var(--border); background:var(--surface-2); }
.fm-path { flex:1; padding:7px 10px; border-radius:8px; background:var(--surface); border:1px solid var(--border); font-size:13px; color:var(--text); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.fm-grid { padding:12px; display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px; align-content:start; }
.fm-item { padding:10px 6px; border-radius:10px; text-align:center; cursor:pointer; } .fm-item:hover { background:rgba(242,166,90,.16); }
.fm-item .fi-emoji { font-size:34px; } .fm-item .fi-label { font-size:11px; margin-top:4px; word-break:break-word; }
/* Files 改为 Nautilus（Ubuntu 文件）布局：左侧“位置”栏 + 主区网格 */
.fm-wrap { display:flex; height:100%; }
.fm-side { width:150px; flex:0 0 150px; background:var(--surface-2); border-right:1px solid var(--border); padding:10px 8px; overflow:auto; }
.fm-side-title { font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.6px; padding:6px 8px; }
.fm-side-item { display:flex; align-items:center; gap:8px; padding:7px 9px; border-radius:8px; cursor:pointer; font-size:13px; color:var(--text); user-select:none; }
.fm-side-item:hover { background:rgba(0,0,0,.05); }
[data-theme="dark"] .fm-side-item:hover { background:rgba(255,255,255,.07); }
.fm-side-item.active { background:#3584e4; color:#fff; font-weight:600; }
.fm-side-item .psi { font-size:15px; line-height:1; }
.fm-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.fm-grid { flex:1; overflow:auto; }
/* 设置（Settings）改为 Ubuntu GNOME 风：左侧高亮用 Ubuntu 蓝，开关用 Ubuntu 橙 */
.ubuntu-set .set-nav-item.active { background:#3584e4; color:#fff; }
.ubuntu-set .set-switch.on { background:#E95420; }

/* 终端 */
.term { height:100%; background:#16140f; color:#ffe9cf; font-family:"Cascadia Code","Consolas",monospace; font-size:13px; padding:10px; overflow:auto; line-height:1.5; }
.term .line { white-space:pre-wrap; word-break:break-word; } .term .prompt { color:var(--xh-yuzu); }
.term input { background:transparent; border:none; color:#fff; font-family:inherit; font-size:13px; outline:none; flex:1; }
.term .inrow { display:flex; gap:6px; } .term .inrow .prompt { white-space:nowrap; }

/* 商店 */
.store { padding:14px; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.sc-card { border:1px solid var(--border); border-radius:14px; padding:14px; background:var(--surface); text-align:center; }
.sc-emoji { font-size:40px; } .sc-emoji .sc-img { width:40px; height:40px; object-fit:contain; } .sc-name { font-weight:700; margin:6px 0 2px; } .sc-desc { font-size:11px; color:var(--text-dim); min-height:30px; }
.sc-btn { margin-top:8px; width:100%; }

/* 设置（GNOME 控制中心风格） */
.set-cc { display:flex; height:100%; }
.set-nav { width:160px; flex:0 0 160px; background:var(--surface-2); border-right:1px solid var(--border); padding:10px 8px; overflow:auto; }
.set-nav-item { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; cursor:pointer; font-size:13px; color:var(--text); user-select:none; }
.set-nav-item .ni { font-size:16px; line-height:1; }
.set-nav-item:hover { background:rgba(0,0,0,.06); }
[data-theme="dark"] .set-nav-item:hover { background:rgba(255,255,255,.08); }
.set-nav-item.active { background:var(--accent); color:#fff; font-weight:600; }
.set-panel { flex:1; min-width:0; overflow:auto; padding:20px 24px; }
.set-h { margin:0 0 18px; font-size:18px; font-weight:700; }
.set-group { margin-bottom:20px; }
.set-label { display:block; font-size:11px; color:var(--text-dim); margin-bottom:8px; text-transform:uppercase; letter-spacing:.6px; }
.set-row { display:flex; align-items:center; gap:10px; padding:9px 2px; }
.set-row > .ni { flex:0 0 auto; font-size:16px; }
.set-row > span:first-child { flex:0 0 auto; }
.set-row .set-val { margin-left:auto; color:var(--text-dim); font-size:13px; flex:0 0 auto; }
.set-card { border:1px solid var(--border); border-radius:12px; padding:4px 12px; background:var(--surface); }
.set-card .set-row { border-bottom:none; }
.dot { width:9px; height:9px; border-radius:50%; background:#9a9a9a; flex:0 0 auto; }
.dot.on { background:#2e9e4f; box-shadow:0 0 0 3px rgba(46,158,79,.22); }
.set-logo { font-size:26px; font-weight:800; letter-spacing:2px; background:linear-gradient(90deg,var(--xh-orange),var(--xh-yuzu)); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:10px; }
.avatar { width:40px; height:40px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; flex:0 0 auto; }
.sub { color:var(--text-dim); font-size:12px; }
.set-switch { width:40px; height:22px; border-radius:11px; background:#c4c4c4; position:relative; cursor:pointer; border:none; flex:0 0 auto; transition:background .15s; padding:0; }
.set-switch::after { content:''; position:absolute; width:18px; height:18px; border-radius:50%; background:#fff; top:2px; left:2px; transition:left .15s; box-shadow:0 1px 2px rgba(0,0,0,.3); }
.set-switch.on { background:var(--accent); }
.set-switch.on::after { left:20px; }
.set-sec { padding:14px 16px; border-bottom:1px solid var(--border); } .set-sec h3 { margin:0 0 10px; font-size:14px; }
.swatch { width:46px; height:46px; border-radius:12px; cursor:pointer; border:2px solid transparent; } .swatch.sel { border-color:var(--text); }
.wp-thumb { width:88px; height:56px; border-radius:10px; cursor:pointer; border:2px solid transparent; background-size:cover; } .wp-thumb.sel { border-color:var(--accent); }

/* 浏览器 */
.br-bar { display:flex; align-items:center; gap:8px; padding:9px 12px; border-bottom:1px solid var(--border); background:var(--surface-2); }
.br-url { flex:1; padding:8px 12px; border-radius:99px; border:1px solid var(--border); background:var(--surface); color:var(--text); outline:none; font-size:13px; }
.br-body { height:100%; overflow:auto; padding:0; } .br-page { padding:22px; max-width:760px; margin:0 auto; }
.br-page h1 { font-size:24px; margin:0 0 6px; } .br-page a.ext { color:var(--accent); font-weight:700; }

/* 记事本 */
.np-area { width:100%; height:100%; border:none; outline:none; resize:none; padding:14px; font-family:"Cascadia Code",Consolas,monospace; font-size:13px; color:var(--text); background:var(--surface); }

/* 计算器 */
.calc { padding:14px; width:260px; }
.calc-screen { background:#16140f; color:#ffe9cf; font-family:"Consolas",monospace; font-size:26px; text-align:right; padding:14px; border-radius:10px; margin-bottom:10px; overflow:hidden; }
.calc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.calc-grid button { padding:14px; font-size:17px; border-radius:10px; border:1px solid var(--border); background:var(--surface-2); color:var(--text); cursor:pointer; font-weight:600; }
.calc-grid button.op { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border:none; }
.calc-grid button:active { transform:scale(.96); }

/* 音乐 */
.music { padding:18px; text-align:center; }
.music-cover { width:140px; height:140px; margin:0 auto 14px; border-radius:18px; background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); display:flex; align-items:center; justify-content:center; font-size:60px; box-shadow:0 10px 30px rgba(242,166,90,.4); }
.music-title { font-weight:800; font-size:18px; } .music-artist { color:var(--text-dim); font-size:13px; margin-bottom:14px; }
.viz { display:flex; align-items:flex-end; justify-content:center; gap:4px; height:46px; margin:10px 0; }
.viz i { width:5px; background:linear-gradient(var(--xh-yuzu),var(--xh-orange)); border-radius:3px; height:8px; transition:height .12s; }
.music-ctr { display:flex; justify-content:center; gap:14px; margin-top:8px; }
.music-ctr button { width:46px; height:46px; border-radius:50%; border:none; cursor:pointer; font-size:18px; background:var(--surface-2); color:var(--text); }
.music-ctr .play { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; }

/* 系统监视器 */
.mon { padding:14px; } .mon-card { border:1px solid var(--border); border-radius:12px; padding:12px; margin-bottom:12px; }
.mon-card h4 { margin:0 0 8px; font-size:13px; }
.mon-bar { height:12px; border-radius:99px; background:var(--surface-2); overflow:hidden; } .mon-bar i { display:block; height:100%; background:linear-gradient(90deg,var(--xh-yuzu),var(--xh-orange)); width:10%; }
.mon-spark { display:flex; align-items:flex-end; gap:2px; height:40px; } .mon-spark i { flex:1; background:var(--accent); border-radius:2px 2px 0 0; min-height:2px; }

/* 关于 */
.about { padding:22px; text-align:center; }
.about-logo { font-size:40px; font-weight:800; letter-spacing:4px; background:linear-gradient(90deg,var(--xh-orange),var(--xh-yuzu)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.about p { color:var(--text-dim); font-size:13px; line-height:1.7; }
.kv { text-align:left; max-width:340px; margin:14px auto; font-size:13px; }
.kv div { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px dashed var(--border); }

/* 通知 */
.toasts { position:fixed; right:16px; bottom:calc(var(--taskbar-h) + 14px); z-index:9500; display:flex; flex-direction:column; gap:10px; }
body[data-shell="gnome"] .toasts { bottom:16px; }
.toast { background:var(--surface); color:var(--text); border:1px solid var(--border); border-left:4px solid var(--accent); border-radius:12px; padding:12px 16px; box-shadow:var(--shadow); min-width:220px; font-size:13px; animation:slidein .25s ease; }
.toast b { display:block; margin-bottom:2px; }
@keyframes slidein { from{ transform:translateX(20px); opacity:0 } to{ transform:translateX(0); opacity:1 } }

::-webkit-scrollbar { width:9px; height:9px; } ::-webkit-scrollbar-thumb { background:rgba(242,166,90,.5); border-radius:9px; } ::-webkit-scrollbar-track { background:transparent; }

/* 应用图标尺寸（真实 Yaru PNG / 回退 SVG 通用） */
.di-emoji svg, .ti-emoji svg, .sa-emoji svg, .oa-emoji svg, .win-title svg,
.di-emoji img, .ti-emoji img, .sa-emoji img, .oa-emoji img, .win-title img { display:block; }
.di-emoji svg, .di-emoji img { width:40px; height:40px; }
.dock-item .di-emoji svg, .dock-item .di-emoji img { width:30px; height:30px; }
.ti-emoji svg, .ti-emoji img { width:18px; height:18px; }
.sa-emoji svg, .sa-emoji img { width:30px; height:30px; }
.oa-emoji svg, .oa-emoji img { width:64px; height:64px; }
.win-title svg, .win-title img { width:18px; height:18px; }
.app-png { object-fit:contain; }

/* ---------- live 模式「安装 XHCOS」桌面快捷方式 ----------
   橙色圆形徽标 + 品牌 logo，浅色/深色主题下均清晰，对应 Ubuntu live 桌面的 Install Ubuntu 入口 */
.install-entry .di-emoji,
.install-entry .sa-emoji,
.install-entry .oa-emoji,
.dock-item.install-entry .di-emoji{
  background:var(--ubuntu-orange) !important;
  border-radius:50% !important;
  display:flex !important; align-items:center; justify-content:center;
  box-shadow:0 0 0 4px rgba(233,84,32,.18);
}
.dicon.install-entry .di-emoji{ width:46px; height:46px; }
.sm-app.install-entry .sa-emoji{ width:38px; height:38px; }
.dock-item.install-entry .di-emoji{ width:48px; height:48px; }
.ov-app.install-entry .oa-emoji{ width:64px; height:64px; }
.install-entry .di-emoji img,
.install-entry .sa-emoji img,
.dock-item.install-entry .di-emoji img,
.ov-app.install-entry .oa-emoji img{
  width:62% !important; height:62% !important; object-fit:contain;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
.dicon.install-entry .di-label,
.sm-app.install-entry .sa-label,
.ov-app.install-entry .oa-label{ color:var(--ubuntu-orange); font-weight:700; }
.ov-app.install-entry .oa-label{ text-shadow:0 1px 3px rgba(0,0,0,.6); }
.dock-item.install-entry{ background:rgba(233,84,32,.22); }
.dock-item.install-entry:hover{ background:rgba(233,84,32,.4); }

/* ---------------- 多账户登录 ---------------- */
.login { position:fixed; inset:0; z-index:8000; background:linear-gradient(135deg,#2b2b2b 0%, #1d1d22 100%);
  display:flex; align-items:center; justify-content:center; }
.login-panel { width:380px; max-width:92vw; padding:30px 28px 26px; border-radius:22px; text-align:center;
  background:rgba(255,255,255,.06); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.12); color:#fff; box-shadow:0 24px 60px rgba(0,0,0,.4); }
.login-brand { display:flex; align-items:center; justify-content:center; gap:10px; font-size:18px; font-weight:800; letter-spacing:.5px; }
.login-brand .login-logo { width:42px; height:auto; filter:drop-shadow(0 4px 14px rgba(242,166,90,.4)); }
.login-sub { font-size:12px; color:#cbb9a5; margin:6px 0 18px; }
.login-users { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:18px; }
.login-user { display:flex; flex-direction:column; align-items:center; gap:6px; width:84px; padding:10px 4px; border-radius:14px;
  background:transparent; border:1px solid transparent; cursor:pointer; color:#fff; transition:.15s; }
.login-user:hover { background:rgba(255,255,255,.08); }
.login-user.sel { background:rgba(242,166,90,.18); border-color:rgba(242,166,90,.6); }
.lu-ava { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:800; color:#2b2b2b; background:var(--c, #F2A65A); box-shadow:0 4px 12px rgba(0,0,0,.3); }
.lu-name { font-size:13px; font-weight:700; max-width:80px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lu-role { font-size:10px; color:#b9a892; }
.login-box { display:flex; flex-direction:column; gap:10px; }
.login-box input[type=password], #loginPwd { width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.25); color:#fff; font-size:14px; outline:none; box-sizing:border-box; }
.login-box input:focus { border-color:var(--xh-orange); }
.login-btn { width:100%; padding:12px; border:none; border-radius:12px; cursor:pointer; font-size:15px; font-weight:700; color:#2b2b2b;
  background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); transition:transform .12s ease, filter .12s ease; }
.login-btn:hover { filter:brightness(1.05); } .login-btn:active { transform:scale(.98); }
.login-hint { font-size:12px; color:#ff9b9b; min-height:14px; }
.login-add { width:100%; padding:8px; border:1px dashed rgba(255,255,255,.3); background:transparent; color:#d8c8b4;
  border-radius:10px; cursor:pointer; font-size:13px; }
.login-add:hover { background:rgba(255,255,255,.06); color:#fff; }

/* ---------------- 首次启动向导 ---------------- */
.onboard { position:fixed; inset:0; z-index:8500; background:linear-gradient(135deg,#23232b,#15151b);
  display:flex; align-items:center; justify-content:center; color:#fff; }
.ob { width:640px; max-width:94vw; max-height:92vh; display:flex; flex-direction:column;
  background:rgba(255,255,255,.05); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:26px 30px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.ob-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ob-brand { font-size:13px; color:#cbb9a5; letter-spacing:.5px; }
.ob-dots { display:flex; align-items:center; gap:6px; }
.ob-dot { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; background:rgba(255,255,255,.1); color:#cfcfcf; }
.ob-dot.cur { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; }
.ob-dot.done { background:rgba(242,166,90,.35); color:#fff; }
.ob-dot-sep { width:14px; height:1px; background:rgba(255,255,255,.2); }
.ob-title { font-size:24px; font-weight:800; margin:18px 0 14px; }
.ob-body { flex:1; overflow:auto; }
.ob-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.ob-opt { display:flex; flex-direction:column; gap:4px; text-align:left; padding:18px 16px; border-radius:14px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); color:#fff; cursor:pointer; transition:.15s; }
.ob-opt:hover { background:rgba(255,255,255,.1); }
.ob-opt.sel { background:rgba(242,166,90,.18); border-color:rgba(242,166,90,.7); box-shadow:inset 0 0 0 2px rgba(242,166,90,.25); }
.ob-opt-t { font-size:16px; font-weight:700; }
.ob-opt-d { font-size:12px; color:#b9a892; }
.ob-wps { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ob-wp { position:relative; height:96px; border-radius:14px; border:1px solid rgba(255,255,255,.15); cursor:pointer; overflow:hidden;
  background-size:cover !important; background-position:center !important; }
.ob-wp span { position:absolute; left:0; right:0; bottom:0; padding:6px 8px; font-size:12px; font-weight:700;
  background:rgba(0,0,0,.45); color:#fff; }
.ob-wp.sel { outline:3px solid var(--xh-orange); outline-offset:-3px; }
.ob-accents { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.ob-swatch { width:42px; height:42px; border-radius:50%; border:2px solid rgba(255,255,255,.25); cursor:pointer; transition:.12s; }
.ob-swatch.sel { border-color:#fff; transform:scale(1.12); box-shadow:0 0 0 3px rgba(255,255,255,.25); }
.ob-toggle { display:flex; align-items:center; gap:8px; font-size:14px; color:#e8ddcd; }
.ob-form { display:flex; flex-direction:column; gap:14px; }
.ob-form label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:#cbb9a5; text-align:left; }
.ob-form input, .ob-form select { padding:11px 12px; border-radius:10px; border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.25); color:#fff; font-size:14px; outline:none; }
.ob-form input:focus, .ob-form select:focus { border-color:var(--xh-orange); }
.ob-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.ob-btn { padding:10px 20px; border-radius:10px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06);
  color:#fff; cursor:pointer; font-size:14px; font-weight:600; }
.ob-btn:hover { background:rgba(255,255,255,.12); }
.ob-btn:disabled { opacity:.35; cursor:not-allowed; }
.ob-next { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border:none; }
.ob-next:hover { filter:brightness(1.05); }
.ob-cancel { margin-right:auto; }
.ob-primary { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border:none; font-weight:700; }
.ob-primary:hover { filter:brightness(1.05); }
.ob-skip { border:1px dashed rgba(255,255,255,.35); color:#d8c8b4; }
.ob-skip:hover { background:rgba(255,255,255,.08); color:#fff; }

/* OOBE：欢迎页品牌大字 */
.ob-logo { font-size:34px; font-weight:800; letter-spacing:6px; text-align:center; margin:4px 0 2px;
  background:linear-gradient(90deg,var(--xh-orange),var(--xh-yuzu)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ob-reboot { align-items:center; text-align:center; }
.ob-reboot .ob-spin { width:46px; height:46px; margin:26px auto 18px; border-radius:50%;
  border:3px solid rgba(255,255,255,.18); border-top-color:var(--xh-orange); animation:obSpin 1s linear infinite; }
@keyframes obSpin { to { transform:rotate(360deg); } }
.ob-reboot .ob-title { font-size:22px; margin:0 0 8px; }
.ob-sub { font-size:13px; color:#b9a892; }

/* OOBE：欢迎页特性卡（2 列） */
.ob-feats { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.ob-feat { display:flex; align-items:center; gap:10px; padding:13px 14px; border-radius:13px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); color:#e8ddcd; font-size:12px; line-height:1.4; }
/* 统一管所有 img：symbolic 24px 用 object-fit 避免 PNG 撑爆；彩色 PNG 也走 24px contain */
.ob-feat img { width:24px; height:24px; object-fit:contain; flex:none; }
.onboard img.ob-sym { filter:invert(1); }
.ob-feat span { min-width:0; }
.ob-link { color:var(--xh-yuzu); text-decoration:underline; cursor:pointer; margin-left:6px; font-weight:600; }
.ob-link:hover { color:var(--xh-orange); }

/* OOBE：头像选择 */
.ob-av-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.ob-av { width:46px; height:46px; border-radius:50%; font-size:22px; border:2px solid rgba(255,255,255,.22);
  background:var(--c); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.12s; }
.ob-av:hover { transform:scale(1.08); }
.ob-av.sel { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.28); transform:scale(1.1); }

/* OOBE：云账户页 */
.ob-cloud { text-align:center; padding:14px 0 4px; }
.ob-acct-banner { display:block; max-width:380px; width:80%; height:auto; margin:0 auto 10px; }
.ob-cloud-d { font-size:13px; color:#b9a892; line-height:1.6; margin-bottom:18px; }
.ob-cloud-actions { display:flex; justify-content:center; gap:12px; }
.ob-acct-form { display:flex; flex-direction:column; gap:10px; max-width:320px; margin:0 auto 16px; text-align:left; }
.ob-acct-input { padding:11px 13px; border-radius:10px; border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.25); color:#fff; font-size:14px; outline:none; }
.ob-acct-input:focus { border-color:var(--xh-orange); }
.ob-acct-input:disabled { opacity:.45; }
.ob-acct-row { display:flex; gap:8px; }
.ob-acct-row .ob-acct-input { flex:1; min-width:0; }
.ob-acct-msg { font-size:12px; color:#b9a892; min-height:16px; text-align:center; }
.ob-acct-ok { display:flex; align-items:center; justify-content:center; gap:8px; font-size:14px; color:#a8f0b0; margin:6px 0 16px; }
.ob-acct-ic { width:18px; height:18px; }

/* OOBE：其他设置开关组 */
.ob-toggles { display:flex; flex-direction:column; gap:6px; margin-top:16px; }
.ob-toggle input { width:16px; height:16px; accent-color:var(--xh-orange); }
.ob-agree { justify-content:center; margin-top:18px; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); color:#cbb9a5; }

/* OOBE：隐私条款阅读页（覆盖层） */
.privacy { position:fixed; inset:0; z-index:8800; background:rgba(10,10,16,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; padding:5vh 4vw; box-sizing:border-box; }
.privacy-panel { width:min(720px,96vw); max-height:90vh; display:flex; flex-direction:column;
  background:#1e1e26; color:#e8ddcd; border:1px solid rgba(255,255,255,.12); border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.6); overflow:hidden; }
.privacy-head { display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 22px; border-bottom:1px solid rgba(255,255,255,.1); }
.privacy-title { font-size:17px; font-weight:800; color:#fff; }
.privacy-close { background:transparent; border:1px solid rgba(255,255,255,.2); color:#fff;
  width:32px; height:32px; border-radius:8px; cursor:pointer; font-size:18px; line-height:1; }
.privacy-close:hover { background:rgba(255,255,255,.1); }
.privacy-body { padding:22px 26px; overflow:auto; flex:1; font-size:13px; line-height:1.75; color:#cbb9a5; }
.privacy-body h3 { color:#fff; font-size:15px; margin:18px 0 8px; font-weight:700; }
.privacy-body h3:first-child { margin-top:0; }
.privacy-body p { margin:0 0 8px; }
.privacy-body code { background:rgba(255,255,255,.08); padding:1px 6px; border-radius:4px; font-family:"Cascadia Code",Consolas,monospace; font-size:12px; color:var(--xh-yuzu); }
.privacy-foot { display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:14px 22px; border-top:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.25); }
.privacy-foot .privacy-agree-label { display:flex; align-items:center; gap:8px; font-size:13px; color:#cbb9a5; flex:1; cursor:pointer; }
.privacy-foot input { width:16px; height:16px; accent-color:var(--xh-orange); cursor:pointer; }

/* =========================================================
   视觉风格：液态玻璃 Liquid Glass（参考 liquid-glass-react）
   高斯模糊 + 饱和度拉升 + 半透明层 + 白色折射高光边框
   ========================================================= */
[data-vstyle="glass"] .window {
  background: rgba(255,255,255,.22);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid rgba(255,255,255,.32);
  box-shadow: 0 20px 60px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.35);
  border-radius: 18px;
  overflow: hidden;
}
[data-vstyle="glass"] .window::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(135deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.04) 45%, rgba(255,255,255,.0) 60%, rgba(255,255,255,.10) 100%);
  border-radius: inherit;
}
[data-vstyle="glass"] .win-bar {
  background: rgba(255,255,255,.14) !important;
  backdrop-filter: blur(14px);
  color: #2b2b2b !important;
  border-bottom: 1px solid rgba(255,255,255,.28);
}
[data-vstyle="glass"] .win-body { background: rgba(255,255,255,.12); }
[data-vstyle="glass"] .window .btn,
[data-vstyle="glass"] .window .paint-tool,
[data-vstyle="glass"] .window .paint-tbtn {
  background: rgba(255,255,255,.35);
  border-color: rgba(255,255,255,.35);
}
[data-vstyle="glass"] .window .btn.primary { background: linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border-color:transparent; }

[data-vstyle="glass"][data-theme="dark"] .window { background: rgba(35,35,41,.35); border-color: rgba(255,255,255,.18); }
[data-vstyle="glass"][data-theme="dark"] .window::before { background: linear-gradient(135deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.02) 45%, rgba(255,255,255,.0) 60%, rgba(255,255,255,.06) 100%); }
[data-vstyle="glass"][data-theme="dark"] .win-bar { background: rgba(35,35,41,.28) !important; color:#fff !important; border-bottom-color: rgba(255,255,255,.18); }
[data-vstyle="glass"][data-theme="dark"] .win-body { background: rgba(35,35,41,.22); }
[data-vstyle="glass"][data-theme="dark"] .window .btn,
[data-vstyle="glass"][data-theme="dark"] .window .paint-tool,
[data-vstyle="glass"][data-theme="dark"] .window .paint-tbtn { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.16); color:#fff; }

/* 顶栏 / Dock / 任务栏 / 开始菜单 / 控制中心 一并玻璃化 */
[data-vstyle="glass"] .topbar { background: rgba(44,0,30,.42) !important; backdrop-filter: blur(24px) saturate(140%); border-bottom: 1px solid rgba(255,255,255,.18); }
[data-vstyle="glass"] .dock { background: rgba(44,0,30,.32); backdrop-filter: blur(24px) saturate(140%); border: 1px solid rgba(255,255,255,.18); box-shadow: 8px 0 30px rgba(0,0,0,.18); }
[data-vstyle="glass"] .taskbar { background: rgba(255,255,255,.28); backdrop-filter: blur(22px) saturate(150%); border-top: 1px solid rgba(255,255,255,.35); }
[data-vstyle="glass"] .startmenu { background: rgba(255,255,255,.28); backdrop-filter: blur(26px) saturate(150%); border: 1px solid rgba(255,255,255,.35); }
[data-vstyle="glass"][data-theme="dark"] .startmenu { background: rgba(35,35,41,.38); }
[data-vstyle="glass"] .cc-panel { background: rgba(28,28,34,.72); backdrop-filter: blur(28px) saturate(150%); border-left: 1px solid rgba(255,255,255,.15); }
[data-vstyle="glass"] .power-menu { background: rgba(30,10,24,.72); backdrop-filter: blur(20px) saturate(140%); border: 1px solid rgba(255,255,255,.18); }
[data-vstyle="glass"] .widgets .wig { background: rgba(255,255,255,.32); backdrop-filter: blur(20px) saturate(150%); border-color: rgba(255,255,255,.28); }
[data-vstyle="glass"][data-theme="dark"] .widgets .wig { background: rgba(35,35,41,.45); }

/* 拟物风格保留 */
[data-vstyle="skeuo"] .window { box-shadow:0 18px 50px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.4); }

/* =========================================================
   视觉风格：Windows 11
   亚克力 Acrylic / 云母 Mica：模糊 + 低饱和度 + 细边框
   Dock 变为底部居中任务栏（左天气 / 中图标 / 右托盘）
   ========================================================= */
[data-vstyle="win11"] { --accent:var(--win11-blue,#0078D4); --accent-2:#40E0D0; }
[data-vstyle="win11"] .window {
  background: rgba(243,243,243,.88);
  backdrop-filter: blur(32px) saturate(1.15);
  -webkit-backdrop-filter: blur(32px) saturate(1.15);
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 10px;
  box-shadow: 0 18px 50px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.55);
  overflow: hidden;
}
[data-vstyle="win11"][data-theme="dark"] .window {
  background: rgba(32,32,32,.88);
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 18px 50px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
}
[data-vstyle="win11"] .win-bar {
  background: rgba(255,255,255,.72) !important;
  color: #1f1f1f !important;
  height: 36px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
[data-vstyle="win11"][data-theme="dark"] .win-bar {
  background: rgba(40,40,40,.72) !important;
  color: #fff !important;
  border-bottom-color: rgba(255,255,255,.08);
}
[data-vstyle="win11"] .win-btn { width: 36px; height: 24px; border-radius: 4px; font-size: 11px; }
[data-vstyle="win11"] .win-btn.win-close:hover { background: #c42b1c; color: #fff; }
[data-vstyle="win11"] .win-btn.win-min:hover, [data-vstyle="win11"] .win-btn.win-max:hover { background: rgba(0,0,0,.08); }
[data-vstyle="win11"][data-theme="dark"] .win-btn.win-min:hover, [data-vstyle="win11"][data-theme="dark"] .win-btn.win-max:hover { background: rgba(255,255,255,.12); }

/* GNOME 顶栏：Win11 风格 */
[data-vstyle="win11"] .topbar {
  background: rgba(243,243,243,.78) !important;
  backdrop-filter: blur(24px) saturate(1.1);
  color: #1f1f1f !important;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
[data-vstyle="win11"][data-theme="dark"] .topbar {
  background: rgba(32,32,32,.78) !important;
  color: #fff !important;
  border-bottom-color: rgba(255,255,255,.08);
}
[data-vstyle="win11"] .tb-activities, [data-vstyle="win11"] .tb-power { color: inherit !important; }

/* Dock → Windows 11 底部任务栏 */
[data-vstyle="win11"] .dock {
  position: fixed;
  left: 0; right: 0; bottom: 0; top: auto;
  width: 100%; height: var(--taskbar-h,56px);
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 14px;
  border-radius: 0;
  background: rgba(243,243,243,.82);
  backdrop-filter: blur(28px) saturate(1.15);
  -webkit-backdrop-filter: blur(28px) saturate(1.15);
  border-top: 1px solid rgba(255,255,255,.45);
  border-left: none; border-right: none; border-bottom: none;
  box-shadow: 0 -4px 20px rgba(0,0,0,.08);
  overflow: visible;
}
[data-vstyle="win11"][data-theme="dark"] .dock {
  background: rgba(32,32,32,.82);
  border-top-color: rgba(255,255,255,.08);
}
[data-vstyle="win11"] .dock-left, [data-vstyle="win11"] .dock-center, [data-vstyle="win11"] .dock-right {
  display: flex; align-items: center; gap: 6px; height: 100%;
}
[data-vstyle="win11"] .dock-center {
  position: absolute; left: 50%; transform: translateX(-50%);
  gap: 4px;
}
[data-vstyle="win11"] .dock-item {
  width: 44px; height: 44px; border-radius: 8px;
  transition: background .12s ease, transform .12s ease;
}
[data-vstyle="win11"] .dock-item:hover { background: rgba(255,255,255,.55); transform: scale(1.05); }
[data-vstyle="win11"][data-theme="dark"] .dock-item:hover { background: rgba(255,255,255,.12); }
[data-vstyle="win11"] .dock-item .running {
  left: 50%; top: auto; bottom: 2px; transform: translateX(-50%);
  width: 16px; height: 3px; border-radius: 2px;
  background: var(--win11-blue,#0078D4);
}
[data-vstyle="win11"] .dock-weather {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 10px; border-radius: 8px;
  color: var(--text); cursor: default;
}
[data-vstyle="win11"] .dock-weather:hover { background: rgba(255,255,255,.35); }
[data-vstyle="win11"][data-theme="dark"] .dock-weather:hover { background: rgba(255,255,255,.1); }
[data-vstyle="win11"] .dw-ico { font-size: 22px; }
[data-vstyle="win11"] .dw-temp { font-size: 13px; font-weight: 700; }
[data-vstyle="win11"] .dw-desc { font-size: 11px; opacity: .8; }
[data-vstyle="win11"] .dock-tray-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 5px; cursor: pointer;
}
[data-vstyle="win11"] .dock-tray-ico:hover { background: rgba(255,255,255,.35); }
[data-vstyle="win11"][data-theme="dark"] .dock-tray-ico:hover { background: rgba(255,255,255,.1); }
[data-vstyle="win11"] .dock-tray-ico img.sym { filter: invert(0); opacity: .8; }
[data-vstyle="win11"][data-theme="dark"] .dock-tray-ico img.sym { filter: invert(1); }
[data-vstyle="win11"] .dock-clock {
  text-align: center; padding: 2px 8px; border-radius: 5px; cursor: default;
  color: var(--text); line-height: 1.2;
}
[data-vstyle="win11"] .dock-clock:hover { background: rgba(255,255,255,.35); }
[data-vstyle="win11"][data-theme="dark"] .dock-clock:hover { background: rgba(255,255,255,.1); }
[data-vstyle="win11"] .dc-time { font-size: 12px; font-weight: 600; }
[data-vstyle="win11"] .dc-date { font-size: 10px; opacity: .8; }
[data-vstyle="win11"] .dock-sep, [data-vstyle="win11"] .dock-trash { display: none; }
[data-vstyle="win11"] .dock-reveal { display: none !important; }
/* 原版 Windows 任务栏常驻：即便残留 autohide 也不滑动/透明 */
[data-vstyle="win11"] .dock.autohide { transform: none !important; opacity: 1 !important; pointer-events: auto !important; }
/* Win11 开始按钮：正版 Windows 11 徽标 */
[data-vstyle="win11"] .dock-start-btn { width: 44px; height: 44px; border-radius: 8px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
[data-vstyle="win11"] .dock-start-btn:hover { background: rgba(255,255,255,.55); }
[data-vstyle="win11"][data-theme="dark"] .dock-start-btn:hover { background: rgba(255,255,255,.12); }
[data-vstyle="win11"] .win-logo { width: 20px; height: 20px; object-fit: contain; }

/* 应用概览 / 开始菜单 / 控制中心 同步 Win11 风格 */
[data-vstyle="win11"] .overview {
  background: rgba(243,243,243,.55);
  backdrop-filter: blur(20px) saturate(1.1);
}
[data-vstyle="win11"][data-theme="dark"] .overview {
  background: rgba(18,18,18,.55);
}
[data-vstyle="win11"] .startmenu {
  background: rgba(243,243,243,.88);
  backdrop-filter: blur(28px) saturate(1.15);
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 12px;
}
[data-vstyle="win11"][data-theme="dark"] .startmenu { background: rgba(32,32,32,.88); border-color: rgba(255,255,255,.1); }
[data-vstyle="win11"] .cc-panel {
  background: rgba(243,243,243,.92);
  backdrop-filter: blur(28px) saturate(1.15);
  color: #1f1f1f;
  border-left: 1px solid rgba(0,0,0,.06);
}
[data-vstyle="win11"][data-theme="dark"] .cc-panel { background: rgba(32,32,32,.92); color: #fff; border-left-color: rgba(255,255,255,.08); }
[data-vstyle="win11"] .cc-tog.on { background: var(--win11-blue,#0078D4); color: #fff; }
[data-vstyle="win11"] .power-menu {
  background: rgba(243,243,243,.95);
  backdrop-filter: blur(24px) saturate(1.1);
  color: #1f1f1f;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 10px;
}
[data-vstyle="win11"][data-theme="dark"] .power-menu { background: rgba(32,32,32,.95); color: #fff; border-color: rgba(255,255,255,.08); }
[data-vstyle="win11"] .power-menu button { color: inherit; }
[data-vstyle="win11"] .power-menu img.sym { filter: invert(1); }
[data-vstyle="win11"][data-theme="dark"] .power-menu img.sym { filter: invert(1); }

/* HERO 任务栏也同步 Win11 视觉 */
[data-vstyle="win11"] .taskbar {
  background: rgba(243,243,243,.82);
  backdrop-filter: blur(28px) saturate(1.15);
  border-top: 1px solid rgba(255,255,255,.45);
}
[data-vstyle="win11"][data-theme="dark"] .taskbar { background: rgba(32,32,32,.82); border-top-color: rgba(255,255,255,.08); }
[data-vstyle="win11"] .start-btn { background: var(--win11-blue,#0078D4); }
[data-vstyle="win11"] .task-item:hover { background: rgba(0,120,212,.12); }
[data-vstyle="win11"] .task-item.active { background: rgba(0,120,212,.22); border-color: rgba(0,120,212,.45); }

/* =========================================================
   视觉风格：Windows 10
   扁平实心 Aero-less：任务栏左对齐、强调色跟随、直角/小圆角
   ========================================================= */
[data-vstyle="win10"] { --accent:var(--win10-blue,#0078D4); --accent-2:#40E0D0; }
[data-vstyle="win10"] .window {
  background: #fff;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 0;
  box-shadow: 0 8px 28px rgba(0,0,0,.22);
}
[data-vstyle="win10"][data-theme="dark"] .window {
  background: #202020;
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
}
[data-vstyle="win10"] .win-bar {
  background: #fff !important;
  color: #1f1f1f !important;
  height: 32px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
[data-vstyle="win10"][data-theme="dark"] .win-bar {
  background: #2b2b2b !important;
  color: #fff !important;
  border-bottom-color: rgba(255,255,255,.08);
}
[data-vstyle="win10"] .win-btn { width: 40px; height: 22px; border-radius: 0; font-size: 11px; }
[data-vstyle="win10"] .win-btn.win-close:hover { background: #e81123; color: #fff; }
[data-vstyle="win10"] .win-btn.win-min:hover, [data-vstyle="win10"] .win-btn.win-max:hover { background: rgba(0,0,0,.08); }
[data-vstyle="win10"][data-theme="dark"] .win-btn.win-min:hover, [data-vstyle="win10"][data-theme="dark"] .win-btn.win-max:hover { background: rgba(255,255,255,.12); }

/* GNOME 顶栏：Win10 风格 */
[data-vstyle="win10"] .topbar {
  background: rgba(0,120,212,.92) !important;
  color: #fff !important;
  border-bottom: none;
}
[data-vstyle="win10"] .tb-activities, [data-vstyle="win10"] .tb-power { color: #fff !important; }

/* Dock → Windows 10 底部任务栏（左对齐） */
[data-vstyle="win10"] .dock {
  position: fixed;
  left: 0; right: 0; bottom: 0; top: auto;
  width: 100%; height: var(--taskbar-h,48px);
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 8px;
  border-radius: 0;
  background: rgba(230,230,230,.95);
  backdrop-filter: none;
  border-top: 1px solid rgba(0,0,0,.08);
  box-shadow: none;
  overflow: visible;
}
[data-vstyle="win10"][data-theme="dark"] .dock {
  background: rgba(40,40,40,.95);
  border-top-color: rgba(255,255,255,.06);
}
[data-vstyle="win10"] .dock-left, [data-vstyle="win10"] .dock-center, [data-vstyle="win10"] .dock-right {
  display: flex; align-items: center; gap: 2px; height: 100%;
}
[data-vstyle="win10"] .dock-center {
  position: static; transform: none;
  flex: 1; justify-content: flex-start; padding-left: 6px;
}
[data-vstyle="win10"] .dock-start-btn {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .12s;
}
[data-vstyle="win10"] .dock-start-btn:hover { background: rgba(255,255,255,.55); }
[data-vstyle="win10"][data-theme="dark"] .dock-start-btn:hover { background: rgba(255,255,255,.12); }
[data-vstyle="win10"] .dock-item {
  width: 40px; height: 40px; border-radius: 0;
  transition: background .12s ease;
}
[data-vstyle="win10"] .dock-item:hover { background: rgba(255,255,255,.55); }
[data-vstyle="win10"][data-theme="dark"] .dock-item:hover { background: rgba(255,255,255,.12); }
[data-vstyle="win10"] .dock-item .running {
  left: 0; top: auto; bottom: 0; transform: none;
  width: 100%; height: 2px; border-radius: 0;
  background: var(--win10-blue,#0078D4);
}
[data-vstyle="win10"] .dock-tray-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; cursor: pointer;
}
[data-vstyle="win10"] .dock-tray-ico:hover { background: rgba(255,255,255,.35); }
[data-vstyle="win10"][data-theme="dark"] .dock-tray-ico:hover { background: rgba(255,255,255,.1); }
[data-vstyle="win10"] .dock-tray-ico img.sym { filter: invert(0); opacity: .8; }
[data-vstyle="win10"][data-theme="dark"] .dock-tray-ico img.sym { filter: invert(1); }
[data-vstyle="win10"] .dock-clock {
  text-align: center; padding: 2px 8px; cursor: default;
  color: var(--text); line-height: 1.2;
}
[data-vstyle="win10"] .dc-time { font-size: 12px; font-weight: 600; }
[data-vstyle="win10"] .dc-date { font-size: 10px; opacity: .8; }
[data-vstyle="win10"] .dock-sep, [data-vstyle="win10"] .dock-trash, [data-vstyle="win10"] .dock-weather { display: none; }
[data-vstyle="win10"] .dock-reveal { display: none !important; }
/* 原版 Windows 任务栏常驻：即便残留 autohide 也不滑动/透明 */
[data-vstyle="win10"] .dock.autohide { transform: none !important; opacity: 1 !important; pointer-events: auto !important; }
/* Win10 开始按钮：正版 Windows 10 徽标（蓝色，直接落在任务栏上） */
[data-vstyle="win10"] .win-logo { width: 20px; height: 20px; object-fit: contain; }

/* 应用概览 / 开始菜单 / 控制中心 / 电源菜单 同步 Win10 风格 */
[data-vstyle="win10"] .overview { background: rgba(230,230,230,.55); backdrop-filter: blur(8px); }
[data-vstyle="win10"][data-theme="dark"] .overview { background: rgba(18,18,18,.55); }
[data-vstyle="win10"] .startmenu {
  background: rgba(230,230,230,.97);
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 0;
  box-shadow: 0 8px 28px rgba(0,0,0,.22);
}
[data-vstyle="win10"][data-theme="dark"] .startmenu { background: rgba(40,40,40,.97); border-color: rgba(255,255,255,.08); }
[data-vstyle="win10"] .cc-panel {
  background: rgba(230,230,230,.97);
  color: #1f1f1f;
  border-left: 1px solid rgba(0,0,0,.08);
}
[data-vstyle="win10"][data-theme="dark"] .cc-panel { background: rgba(40,40,40,.97); color: #fff; border-left-color: rgba(255,255,255,.08); }
[data-vstyle="win10"] .cc-tog.on { background: var(--win10-blue,#0078D4); color: #fff; }
[data-vstyle="win10"] .power-menu {
  background: rgba(230,230,230,.98);
  color: #1f1f1f;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 0;
}
[data-vstyle="win10"][data-theme="dark"] .power-menu { background: rgba(40,40,40,.98); color: #fff; border-color: rgba(255,255,255,.08); }
[data-vstyle="win10"] .power-menu button { color: inherit; }
[data-vstyle="win10"] .power-menu img.sym { filter: invert(1); }
[data-vstyle="win10"][data-theme="dark"] .power-menu img.sym { filter: invert(1); }

/* HERO 任务栏也同步 Win10 视觉 */
[data-vstyle="win10"] .taskbar {
  background: rgba(230,230,230,.95);
  backdrop-filter: none;
  border-top: 1px solid rgba(0,0,0,.08);
}
[data-vstyle="win10"][data-theme="dark"] .taskbar { background: rgba(40,40,40,.95); border-top-color: rgba(255,255,255,.06); }
[data-vstyle="win10"] .start-btn { background: var(--win10-blue,#0078D4); border-radius: 0; }
[data-vstyle="win10"] .task-item:hover { background: rgba(0,120,212,.12); }
[data-vstyle="win10"] .task-item.active { background: rgba(0,120,212,.22); border-color: rgba(0,120,212,.45); }

/* ---------------- 控制中心 + 通知中心 ---------------- */
.cc { position:fixed; top:0; right:0; bottom:0; z-index:8200; width:340px; max-width:92vw;
  background:rgba(20,20,26,.5); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  display:flex; align-items:flex-start; justify-content:flex-end; }
.cc-panel { width:340px; max-width:92vw; height:100%; overflow:auto; padding:18px 16px; box-sizing:border-box;
  background:rgba(28,28,34,.94); color:#fff; box-shadow:-20px 0 60px rgba(0,0,0,.5); }
.cc-h { font-size:16px; font-weight:800; margin-bottom:12px; }
.cc-h2 { font-size:13px; font-weight:700; color:#cbb9a5; margin:18px 0 8px; }
.cc-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.cc-tog { display:flex; align-items:center; gap:8px; text-align:left; padding:12px; border-radius:14px; cursor:pointer;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); color:#fff; transition:.15s; }
.cc-tog:hover { background:rgba(255,255,255,.1); }
.cc-tog.on { background:linear-gradient(135deg,var(--xh-orange),var(--xh-yuzu)); color:#2b2b2b; border-color:transparent; }
.cc-ic { font-size:18px; }
.cc-lb { flex:1; font-size:13px; font-weight:700; }
.cc-st { font-size:11px; opacity:.8; }
.cc-slide { display:flex; align-items:center; gap:10px; margin-top:14px; font-size:13px; color:#e8ddcd; }
.cc-slide input[type=range]{ flex:1; accent-color:var(--xh-orange); }
.cc-notifs { display:flex; flex-direction:column; gap:8px; }
.cc-n { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:9px 11px; }
.cc-nt { font-size:13px; font-weight:700; }
.cc-nm { font-size:12px; color:#cbb9a5; margin-top:2px; }
.cc-empty { font-size:12px; color:#9c8e7e; padding:8px 2px; }
.tb-quick { background:transparent; border:none; color:#fff; font-size:15px; cursor:pointer; padding:0 4px; }
.tray-ico#trayCC { cursor:pointer; }

/* ---------------- XHCOS-amd64 资源同步 ---------------- */
.amd { display:flex; flex-direction:column; height:100%; box-sizing:border-box; padding:14px; gap:10px; }
.amd-head { margin:-14px -14px 0 -14px; }
/* 用户提供的原始 Banner 图（assets/download-banner.png），按原尺寸透传、禁止压缩/缩放源文件 */
.amd-banner-img { display:block; width:100%; height:auto; border-radius:var(--win-radius) var(--win-radius) 0 0; }
.amd-actions { display:flex; gap:8px; flex-wrap:wrap; }
.amd-src { display:flex; gap:8px; }
.amd-src-input { flex:1; padding:8px 10px; border-radius:9px; border:1px solid var(--border); background:var(--surface); color:var(--text); font-size:13px; outline:none; min-width:0; }
.amd-src-input:focus { border-color:var(--accent); }
.amd-remote { font-size:10px; color:var(--text-dim); margin-left:6px; }
.amd-status { font-size:12px; color:var(--text-dim); background:var(--surface-2); border-radius:10px; padding:8px 10px; }
.amd-list { flex:1; overflow:auto; display:flex; flex-direction:column; gap:6px; }
.amd-empty { font-size:12px; color:var(--text-dim); padding:10px; }
.amd-row { display:flex; align-items:center; gap:10px; padding:8px; border:1px solid var(--border); border-radius:10px; }
.amd-thumb { width:38px; height:38px; border-radius:8px; object-fit:cover; flex:none; }
.amd-ic { width:38px; height:38px; display:flex; align-items:center; justify-content:center; font-size:20px; flex:none; }
.amd-meta { flex:1; min-width:0; }
.amd-name { font-size:13px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.amd-size { font-size:11px; color:var(--text-dim); }
.amd-set { flex:none; }

/* XHCOS-amd64 行内操作按钮 + 图片预览 */
.amd-row-btns { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.amd-row-btns .btn { padding:6px 10px; font-size:12px; flex:none; }
.amd-prev { position:absolute; inset:0; z-index:50; background:rgba(0,0,0,.9); display:flex; align-items:center; justify-content:center; }
.amd-prev img { max-width:94%; max-height:90%; border-radius:10px; box-shadow:0 12px 40px rgba(0,0,0,.6); }
.amd-prev button { position:absolute; top:12px; right:14px; width:36px; height:36px; border-radius:50%; border:none; background:rgba(255,255,255,.15); color:#fff; font-size:16px; cursor:pointer; }
.amd-prev button:hover { background:rgba(255,255,255,.3); }

/* 文件管理器：图片预览覆盖层（真实打开导入图片） */
.fm-img-prev { position:fixed; inset:0; z-index:9600; background:rgba(0,0,0,.92); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-direction:column; }
.fm-img-prev img { max-width:92%; max-height:84%; border-radius:12px; box-shadow:0 16px 50px rgba(0,0,0,.6); }
.fm-img-prev .fm-img-hint { position:absolute; bottom:18px; color:rgba(255,255,255,.55); font-size:13px; }

/* ---------------- 内核启动日志 ---------------- */
.klog { width:min(620px,86vw); max-height:150px; margin:12px 0 0; padding:10px 12px; background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.1); border-radius:10px; color:#a8f0b0; font-family:"Cascadia Code","Consolas",monospace;
  font-size:11px; line-height:1.45; text-align:left; overflow:auto; }
.klog .kline { white-space:pre-wrap; opacity:.92; }

/* ---------------- XHC 画图板 ---------------- */
.paint-wrap { display:flex; flex-direction:column; height:100%; background:var(--surface); }
.paint-menu { display:flex; align-items:center; gap:2px; padding:4px 10px; border-bottom:1px solid var(--border); background:var(--surface-2); font-size:13px; }
.paint-mi { padding:4px 10px; border-radius:5px; cursor:pointer; }
.paint-mi:hover { background:rgba(0,0,0,.06); }
[data-theme="dark"] .paint-mi:hover { background:rgba(255,255,255,.08); }
.paint-menubox { position:absolute; top:30px; left:0; z-index:10; background:var(--surface); border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow); padding:4px; min-width:120px; }
.paint-mitem { padding:7px 10px; border-radius:6px; cursor:pointer; font-size:13px; }
.paint-mitem:hover { background:rgba(242,166,90,.18); }
.paint-main { flex:1; display:flex; overflow:hidden; }
.paint-left { width:84px; flex:0 0 84px; background:var(--surface-2); border-right:1px solid var(--border); padding:8px 6px; overflow:auto; display:flex; flex-direction:column; gap:5px; }
.paint-right { width:110px; flex:0 0 110px; background:var(--surface-2); border-left:1px solid var(--border); padding:8px; overflow:auto; }
.paint-center { flex:1; display:flex; flex-direction:column; min-width:0; }
.paint-toolbar { display:flex; align-items:center; gap:6px; padding:6px 10px; border-bottom:1px solid var(--border); background:var(--surface); }
.paint-canvas-wrap { flex:1; overflow:auto; display:flex; align-items:center; justify-content:center; background:#e8e8e8; padding:12px; }
.paint-canvas { background:#fff; cursor:crosshair; box-shadow:0 6px 20px rgba(0,0,0,.12); touch-action:none; }
.paint-tool { width:34px; height:34px; border-radius:8px; border:1px solid transparent; background:transparent; color:var(--text); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.paint-tool:hover { background:rgba(0,0,0,.06); }
.paint-tool.active { background:var(--accent); color:#fff; border-color:rgba(0,0,0,.1); }
.paint-sec { font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.5px; margin:6px 0 2px; }
.paint-slider { width:100%; margin:4px 0; }
.paint-val { font-size:11px; color:var(--text-dim); text-align:center; }
.paint-tbtn { padding:5px 8px; border-radius:7px; border:1px solid var(--border); background:var(--surface); color:var(--text); cursor:pointer; font-size:14px; }
.paint-tbtn:hover { background:rgba(242,166,90,.18); }
.paint-palette { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.paint-color { width:26px; height:26px; border-radius:5px; cursor:pointer; border:1px solid rgba(0,0,0,.15); }
.paint-cur { width:40px; height:40px; border-radius:8px; border:1px solid var(--border); margin:10px auto; background:#2b2b2b; }
#paintColorPicker { width:100%; border:none; background:none; height:32px; cursor:pointer; }
.paint-status { display:flex; align-items:center; gap:16px; padding:5px 12px; border-top:1px solid var(--border); background:var(--surface-2); font-size:11px; color:var(--text-dim); }
.paint-status span:last-child { margin-left:auto; }

/* ---------------- 睡眠 ---------------- */
.sleep { position:fixed; inset:0; z-index:8800; background:#000; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; cursor:pointer; }
.sleep-emoji { font-size:72px; opacity:.85; }
.sleep-hint { font-size:14px; color:#b9a892; }

/* ---------------- 专注模式 ---------------- */
.focus { position:fixed; inset:0; z-index:8700; background:rgba(10,10,14,.86); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; }
.fz-card { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:34px 44px; text-align:center; color:#fff; min-width:300px; box-shadow:0 24px 60px rgba(0,0,0,.5); }
.fz-title { font-size:18px; font-weight:800; letter-spacing:.5px; margin-bottom:8px; color:var(--xh-yuzu); }
.fz-phase { font-size:13px; color:#cbb9a5; margin-bottom:6px; }
.fz-time { font-size:64px; font-weight:800; font-variant-numeric:tabular-nums; margin:6px 0; letter-spacing:2px; }
.fz-round { font-size:13px; color:#e8ddcd; margin-bottom:18px; }
.fz-ctr { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ---------------- 屏保 ---------------- */
.screensaver { position:fixed; inset:0; z-index:8900; background:#0a0a14; cursor:pointer; }
#saverCanvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
.saver-hint { position:absolute; right:18px; bottom:16px; font-size:13px; color:rgba(255,255,255,.5); letter-spacing:1px; }

/* ---------------- 桌面小组件 ---------------- */
.widgets { position:absolute; right:96px; top:42px; z-index:8500; display:flex; flex-direction:column; gap:12px; width:200px; max-width:calc(100vw - 180px); }
.wig { background:rgba(255,255,255,.6); backdrop-filter:blur(10px); border:1px solid var(--border); border-radius:16px; padding:14px; box-shadow:0 8px 24px rgba(43,43,43,.18); color:var(--text); }
[data-theme="dark"] .wig { background:rgba(35,35,41,.6); }
.wig-clock .wig-t { font-size:30px; font-weight:800; font-variant-numeric:tabular-nums; }
.wig-clock .wig-d { font-size:12px; color:var(--text-dim); margin-top:2px; }
.wig-h { font-size:12px; font-weight:700; color:var(--text-dim); margin-bottom:8px; text-transform:uppercase; letter-spacing:.6px; }
.wig-l { display:flex; justify-content:space-between; font-size:12px; margin-top:6px; }
.wig-bar { height:7px; border-radius:99px; background:var(--surface-2); overflow:hidden; margin-top:3px; }
.wig-bar i { display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--xh-yuzu),var(--xh-orange)); transition:width .4s ease; }
.wig-notes textarea { width:100%; height:80px; border:none; outline:none; resize:none; background:transparent; color:var(--text); font-family:inherit; font-size:13px; line-height:1.4; }

/* 控制中心内下拉（屏保/自动锁屏时长） */
.cc-slide select { flex:0 0 auto; padding:6px 10px; border-radius:8px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#fff; font-size:13px; }
.cc-slide select option { color:#000; }

