:root{
  --taskbar-h:54px;--win-radius:5px;
  --brand:#2563eb;--brand-deep:#1d4ed8;--brand-light:#3b82f6;--brand-soft:#dbeafe;--brand-border:#93c5fd;--brand-deep-2:#1e3a8a;
  --ink:#1e293b;--ink-2:#334155;--ink-3:#475569;--muted:#64748b;--muted-2:#94a3b8;
  --line:#cbd5e1;--line-2:#e2e8f0;--bg-soft:#f1f5f9;--bg-soft-2:#f8fafc;
  --danger:#dc2626;--danger-light:#ef4444;--danger-soft:#fef2f2;
  --radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:22px;
  --shadow-card:0 10px 22px -8px rgba(0,0,0,.55);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC","Helvetica Neue",Arial,sans-serif}
body{
  background-color:#0d1b3d;
  background-repeat:no-repeat;background-position:center;
  transition:background .3s ease;
}

/* ============ 登录页 ============ */
.login-overlay{
  position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;
  background:
    radial-gradient(1100px 640px at 10% -10%,rgba(96,165,250,.32),transparent 60%),
    radial-gradient(900px 560px at 108% 6%,rgba(56,189,248,.26),transparent 55%),
    radial-gradient(820px 600px at 50% 118%,rgba(37,99,235,.34),transparent 60%),
    linear-gradient(135deg,#07102e 0%,#0d1f4d 45%,#123a8a 100%);
}
.login-overlay::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(820px 540px at 50% 42%,#000 28%,transparent 74%);
  mask-image:radial-gradient(820px 540px at 50% 42%,#000 28%,transparent 74%);
}
.login-curtain{
  position:absolute;left:-3%;right:-3%;bottom:-10%;height:36%;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 30px,rgba(255,255,255,0) 30px 60px);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 34%);
  mask-image:linear-gradient(180deg,transparent,#000 34%);
  transform:perspective(700px) rotateX(8deg);
  transform-origin:50% 0;
}
.login-orb{position:absolute;border-radius:50%;pointer-events:none}
.login-orb-a{width:340px;height:340px;left:-90px;top:-80px;background:radial-gradient(circle,rgba(59,130,246,.38),transparent 65%);animation:orbFloat 11s ease-in-out infinite}
.login-orb-b{width:300px;height:300px;right:-70px;bottom:6%;background:radial-gradient(circle,rgba(6,182,212,.30),transparent 65%);animation:orbFloat 13s ease-in-out infinite reverse}
@keyframes orbFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(26px,-20px)}}
.login-card{
  position:relative;width:382px;max-width:100%;background:#fff;border-radius:22px;padding:40px 36px 28px;
  box-shadow:0 34px 80px -20px rgba(2,8,30,.7),0 0 0 1px rgba(255,255,255,.1);text-align:center;
  animation:cardIn .45s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes cardIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.login-card::before{
  content:"";position:absolute;top:0;left:22px;right:22px;height:4px;border-radius:0 0 5px 5px;
  background:linear-gradient(90deg,var(--brand-light),#22d3ee 50%,var(--brand-light));
}
.login-logo{width:80px;height:80px;margin:0 auto 14px;border-radius:50%;background:linear-gradient(135deg,var(--brand-light),var(--brand-deep-2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;box-shadow:0 12px 24px -6px rgba(29,78,216,.6);position:relative}
.login-logo img{width:60%;height:60%;}
.login-logo::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px solid rgba(59,130,246,.4);animation:logoPulse 2.8s ease-in-out infinite}
@keyframes logoPulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:.2}}
.login-card h2{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:1px;margin-bottom: 10px;}
.login-sub{font-size:12px;color:var(--muted);margin:6px 0 22px}
.login-field{text-align:left;margin-bottom:14px}
.login-field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-3);margin-bottom:6px}
.login-field input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line-2);font-size:14px;background:var(--bg-soft-2);transition:border-color .2s,box-shadow .2s,background .2s}
.login-field input:focus{background:#fff;border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(59,130,246,.16)}
.login-err{min-height:18px;font-size:12.5px;color:var(--danger);margin:0 0 4px}
#btnLogin{width:100%;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 10px 22px -8px rgba(37,99,235,.55);transition:transform .15s,box-shadow .15s;font-family:inherit}
#btnLogin:hover{transform:translateY(-1px);box-shadow:0 14px 26px -8px rgba(37,99,235,.6)}
.login-tip{font-size:11.5px;color:var(--muted-2);margin-top:14px;line-height:1.7}

/* ============ 桌面区 ============ */
.desktop{
  position:absolute;left:0;right:0;top:0;bottom:var(--taskbar-h);
  overflow:hidden;user-select:none;-webkit-user-select:none;
}
.desktop .shine{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(1100px 700px at 80% 0%,rgba(255,255,255,.05),transparent 55%)}
/* 桌面图标 */
.desk-icon{
  position:absolute;width:112px;padding:12px 6px 8px;border-radius:14px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  cursor:default;z-index:2;touch-action:none;
  border:1.5px solid transparent;transition:background .12s,border-color .12s;
}
.desk-icon:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
.desk-icon.sel{background:rgba(59,130,246,.26);border-color:rgba(96,165,250,.6)}
.desk-icon .ic{
  width:60px;height:60px;padding: 10%;border-radius:10px;position:relative;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 22px -8px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .12s;pointer-events:none;
}
.desk-icon .ic img{width:100%;height:100%;}
.desk-icon:hover .ic{transform:translateY(-3px) scale(1.05)}
.desk-icon .ic::after{content:"";position:absolute;left:8%;right:8%;bottom:-7px;height:8px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.4),transparent 70%)}
.desk-icon .ic .glyph{font-size:28px;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.3)}
.desk-icon .ic .glyph-svg{width:30px;height:30px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
.desk-icon .ic .glyph-svg svg{width:100%;height:100%;display:block}
.desk-icon .ic .glyph-cn{font-size:26px;font-weight:800;color:#fff}
.desk-icon .name{color:#fff;font-size:12.5px;font-weight:500;text-align:center;line-height:1.35;text-shadow:0 1px 3px rgba(0,0,0,.8);max-width:104px;pointer-events:none;word-break:break-all}
.ic-quote{background:linear-gradient(145deg,var(--brand),var(--brand-deep-2))}
.ic-delivery{background:linear-gradient(145deg,var(--ink-2),var(--ink))}
.ic-tool{background:linear-gradient(145deg,#059669,#065f46)}
.ic-calc{background:linear-gradient(145deg,#7c3aed,#5b21b6)}
.ic-note{background:linear-gradient(145deg,#f59e0b,#b45309)}
.ic-album{background:linear-gradient(145deg,#ec4899,#be185d)}
.ic-todo{background:linear-gradient(145deg,#10b981,#047857)}
.ic-cal{background:linear-gradient(145deg,#06b6d4,#0e7490)}
.ic-user{background:linear-gradient(145deg, #3106d4, #410e90)}
.ic-settings{background:linear-gradient(145deg,var(--muted),var(--ink-2))}

/* ============ 窗口系统 ============ */
.win{
  position:absolute;min-width:300px;min-height:200px;border-radius:var(--win-radius);
  background:#fff;box-shadow:0 24px 70px -18px rgba(0,0,0,.6),0 0 0 1px rgba(15,23,42,.08);
  display:flex;flex-direction:column;overflow:hidden;z-index:10;
  animation:winIn .18s ease;
}
@keyframes winIn{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}
.win.active{box-shadow:0 30px 80px -16px rgba(0,0,0,.7),0 0 0 1px rgba(59,130,246,.4)}
.win.active .win-ic{box-shadow:0 4px 10px -3px rgba(37,99,235,.5)}
.win:not(.active){opacity:.94}
.win:not(.active) .win-bar{background:linear-gradient(135deg,#eef2f7,#dde3ea);border-bottom-color:#c8d0da}
.win:not(.active) .win-title{color:#5f6b7a}
.win.min{display:none}
.win.max{left:0!important;top:0!important;width:100%!important;height:100%!important;border-radius:0}
.win-bar{
  height:40px;flex:none;display:flex;align-items:center;gap:8px;padding:0 8px 0 12px;
  background:linear-gradient(135deg,var(--bg-soft),var(--line-2));border-bottom:1px solid var(--line);
  cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;
}
.win-bar:active{cursor:grabbing}
.win.active .win-bar{background:linear-gradient(135deg,var(--brand-soft),var(--brand-soft));border-bottom-color:var(--brand-border)}
.win-ic{width:22px;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;flex:none}
.win-title{font-size:13px;font-weight:600;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win-btns{display:flex;gap:2px;flex:none}
.win-btn{
  width:34px;height:28px;border:none;border-radius:7px;background:transparent;cursor:pointer;
  font-size:13px;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background .12s;
}
.win-btn:hover{background:rgba(15,23,42,.08)}
.win-btn.close:hover{background:var(--danger-light);color:#fff}
.win-body{flex:1;overflow:hidden;position:relative;background:#fff}
.win-body iframe{width:100%;height:100%;border:none;display:block}
.win-resize{
  position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;z-index:5;
}
.win-resize::after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid var(--muted-2);border-bottom:2px solid var(--muted-2);border-radius:0 0 3px 0}

/* ============ 任务栏 ============ */
.taskbar{
  position:absolute;left:0;right:0;bottom:0;height:var(--taskbar-h);
  background:rgba(10,16,32,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid rgba(255,255,255,.09);
  display:flex;align-items:center;gap:10px;padding:0 14px;z-index:9000;
}
.start-btn{
  display:flex;
  align-items:center;
  gap:9px;
  height: 100%;
  padding: 0 10px;
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  cursor:pointer;
  user-select:none;
  background: #00000000;
   transition:filter .15s,transform .1s; 
  border:none;
}
.start-btn:hover{filter:brightness(1.12)}
.start-btn:active{transform:scale(.97)}
.start-btn .dot{width:20px;height:20px;flex:none}
.start-btn .dot img{width:100%;height:100%;}
.taskbar-sep{width:1px;height:26px;background:rgba(255,255,255,.14)}
.taskbar-apps{display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;flex:1}
.taskbar-apps::-webkit-scrollbar{display:none}
.tb-app{
  display:flex;align-items:center;gap:7px;padding:5px 11px;border-radius:9px;color:var(--line-2);
  font-size:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);
  cursor:pointer;white-space:nowrap;transition:background .15s;text-decoration:none;font-family:inherit;
}
.tb-app:hover{background:rgba(255,255,255,.15)}
.tb-app{position:relative}
.tb-app.on{background:rgba(59,130,246,.3);border-color:rgba(96,165,250,.4)}
.tb-app.on::after{content:"";position:absolute;left:14%;right:14%;bottom:2px;height:2.5px;border-radius:2px;background:linear-gradient(90deg,#60a5fa,#3b82f6)}
.tb-app .mini svg{width:14px;height:14px;display:block}
.win-ic svg{width:16px;height:16px;display:block}
.mi svg{width:17px;height:17px;display:block}
.tb-app .mini{width:16px;height:16px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:#fff;flex:none}
.tb-app .mini img{width:100%;height:100%;}
.taskbar-right{display:flex;align-items:center;gap:6px}
.wall-btn,.set-btn{
  border:none;background:transparent;color:var(--line);font-size:15px;cursor:pointer;padding:6px 8px;border-radius:8px;transition:background .12s;
}
.wall-btn:hover,.set-btn:hover{background:rgba(255,255,255,.12)}
.taskbar-time{color:var(--line-2);font-size:12.5px;text-align:right;line-height:1.45;padding:0 4px;white-space:nowrap}
.taskbar-time .date{color:rgba(226,232,240,.65);font-size:11px}

/* ============ 开始菜单 ============ */
.start-menu{
  position:absolute;left:14px;bottom:calc(var(--taskbar-h) + 10px);
  width:340px;max-width:calc(100vw - 28px);max-height:90vh;overflow-y:auto;
  background:rgba(15,24,44,.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.7);
  z-index:9500;display:none;animation:menuIn .18s ease;
}
.start-menu.open{display:block}
@keyframes menuIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.start-menu .menu-title{color:var(--muted-2);font-size:11.5px;padding:4px 10px 8px;letter-spacing:1px}
.start-menu .menu-item{
  display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;
  color:var(--line-2);font-size:13.5px;cursor:pointer;text-decoration:none;transition:background .12s;
}
.start-menu .menu-item:hover{background:rgba(59,130,246,.22)}
.start-menu .menu-item .mi{width:30px;height:30px;padding: 5px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex:none;overflow: hidden;}
.start-menu .menu-item .mi img{width:100%;height:100%;}
.start-menu .menu-item small{color:rgba(226,232,240,.55);font-size:11px;margin-left:auto}
.start-menu .menu-item small a{color:rgba(226,232,240,.55);font-size:14px;margin-left:auto;text-decoration: none;}
.start-menu .menu-item small a i{color:rgba(226,232,240,.55);font-size:14px;margin-left:auto}
.start-menu .menu-div{height:1px;background:rgba(255,255,255,.08);margin:8px 10px}

/* ============ 右键菜单 ============ */
.ctx-menu{
  position:fixed;z-index:98000;min-width:190px;background:rgba(20,28,48,.96);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:6px;box-shadow:0 18px 50px -12px rgba(0,0,0,.6);
  display:none;animation:menuIn .12s ease;
}
.ctx-menu.show{display:block}
.ctx-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:var(--line-2);font-size:13px;cursor:pointer;transition:background .1s}
.ctx-item:hover{background:rgba(59,130,246,.25)}
.ctx-item.dis{opacity:.45;cursor:default}
.ctx-item.dis:hover{background:transparent}
.ctx-sep{height:1px;background:rgba(255,255,255,.1);margin:5px 8px}

/* ============ 通用提示 ============ */
.desktop-hint{
  position:absolute;left:50%;bottom:calc(var(--taskbar-h) + 20px);transform:translateX(-50%);
  background:rgba(10,16,32,.85);color:var(--line-2);font-size:12.5px;padding:9px 18px;border-radius:999px;
  border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;transition:opacity .3s;z-index:9600;white-space:nowrap;
}
.desktop-hint.show{opacity:1}

/* ============ 小部件通用 ============ */
.wdg{padding:14px;height:100%;overflow:auto;font-size:13px;color:var(--ink);display:flex;flex-direction:column}
.wdg-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12.5px;cursor:pointer;transition:.15s;font-family:inherit}
.wdg-btn:hover{border-color:var(--brand-border);background:var(--brand-soft)}
.wdg-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.wdg-btn.primary:hover{background:var(--brand-deep)}
.wdg-input{padding:7px 10px;border-radius:8px;border:1px solid var(--line);font-size:13px;outline:none;font-family:inherit}
.wdg-input:focus{border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(59,130,246,.13)}

/* ---- 计算器 ---- */
.calc{background:var(--bg-soft-2);padding:0;display:flex;flex-direction:column}
.calc-screen{background:#0f172a;color:var(--line-2);padding:16px 18px;text-align:right;min-height:88px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px}
.calc-screen .expr{font-size:13px;color:var(--muted-2);min-height:18px;word-break:break-all}
.calc-screen .val{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;word-break:break-all}
.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);flex:1}
.calc-keys button{border:none;background:#fff;font-size:17px;padding:0;cursor:pointer;color:var(--ink);transition:background .08s;font-family:inherit}
.calc-keys button:hover{background:var(--bg-soft)}
.calc-keys button:active{background:var(--brand-soft)}
.calc-keys .op{background:var(--bg-soft-2);color:var(--brand);font-weight:600}
.calc-keys .eq{background:var(--brand);color:#fff;font-weight:700}
.calc-keys .eq:hover{background:var(--brand-deep)}
.calc-keys .fn{background:var(--bg-soft);color:var(--muted)}

/* ---- 记事本 ---- */
.note-wrap{display:flex;flex-direction:column;height:100%}
.note-bar{display:flex;gap:8px;align-items:center;padding-bottom:10px;flex-wrap:wrap}
.note-bar .sp{flex:1}
.note-wrap textarea{flex:1;width:100%;border:1px solid var(--line-2);border-radius:10px;padding:12px;font-size:13.5px;line-height:1.7;resize:none;outline:none;font-family:inherit}
.note-wrap textarea:focus{border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(59,130,246,.13)}

/* ---- 待办 ---- */
.todo-add{display:flex;gap:8px;margin-bottom:12px}
.todo-add input{flex:1}
.todo-list{flex:1;overflow:auto}
.todo-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--line-2);margin-bottom:8px;background:#fff;transition:.15s}
.todo-item:hover{border-color:var(--brand-soft)}
.todo-item.done .todo-txt{text-decoration:line-through;color:var(--muted-2)}
.todo-item .todo-cb{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;flex:none}
.todo-item .todo-txt{flex:1;word-break:break-all}
.todo-item .todo-del{border:none;background:transparent;color:var(--muted-2);cursor:pointer;font-size:15px;padding:4px;border-radius:6px;flex:none}
.todo-item .todo-del:hover{color:var(--danger-light);background:var(--danger-soft)}
.todo-empty{color:var(--muted-2);text-align:center;padding:30px 0;font-size:12.5px}

/* ---- 相册 ---- */
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;padding-bottom:10px}
.album-item{position:relative;border-radius:10px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;background:var(--bg-soft);border:1px solid var(--line-2)}
.album-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.album-item:hover img{transform:scale(1.06)}
.album-item .del{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:7px;background:rgba(15,23,42,.55);color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:opacity .15s;line-height:1}
.album-item:hover .del{opacity:1}
.album-item .del:hover{background:var(--danger-light)}
.album-item .al-tag{position:absolute;left:4px;top:4px;font-size:10px;color:#fff;background:rgba(37,99,235,.85);padding:1px 7px;border-radius:6px;pointer-events:none}
.album-sec-badge{font-size:10px;font-weight:700;color:#fff;background:var(--brand);padding:2px 8px;border-radius:999px}
.album-sec-badge.mine{background:var(--muted)}
/* 灯箱：大图预览 + 前后切换 + 下载 */
.lightbox{position:fixed;inset:0;background:rgba(2,6,23,.93);z-index:97000;display:none;align-items:center;justify-content:center;gap:8px;padding:0 20px}
.lightbox.show{display:flex}
.lightbox .lb-main{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;min-width:0}
.lightbox .lb-main img{max-width:100%;max-height:78vh;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.6);object-fit:contain}
.lightbox .lb-name{color:var(--line);font-size:13px}
.lightbox .lb-close{
  position:absolute;top:16px;right:16px;width:44px;height:44px;border:none;border-radius:12px;
  background:rgba(255,255,255,.1);color:#fff;font-size:20px;cursor:pointer;
  transition:background .15s,transform .1s;line-height:1;display:flex;align-items:center;justify-content:center;z-index:5;
}
.lightbox .lb-close:hover{background:rgba(239,68,68,.75)}
.lightbox .lb-close:active{transform:scale(.92)}
.lightbox .lb-nav{
  flex:none;width:48px;height:64px;border:none;border-radius:12px;background:rgba(255,255,255,.08);
  color:#fff;font-size:34px;cursor:pointer;transition:background .15s;line-height:1;display:flex;align-items:center;justify-content:center;
}
.lightbox .lb-nav:hover{background:rgba(59,130,246,.45)}
.lightbox .lb-toolbar{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;
  background:rgba(15,23,42,.82);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 16px}
.lightbox .lb-count{color:var(--line);font-size:12.5px;font-variant-numeric:tabular-nums}
.lightbox #lbDownload{border:none;background:var(--brand);color:#fff;font-size:12.5px;font-weight:600;padding:7px 16px;border-radius:999px;cursor:pointer;transition:background .15s}
.lightbox #lbDownload:hover{background:var(--brand-deep)}

/* ---- 日历 ---- */
.cal-wrap{padding:10px;height:100%;display:flex;flex-direction:column}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-head .cal-title{font-size:15px;font-weight:700;color:var(--ink)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;flex:1}
.cal-grid .cal-dow{text-align:center;font-size:11px;color:var(--muted-2);padding:4px 0;font-weight:600}
.cal-grid .cal-day{
  text-align:center;padding:8px 0;border-radius:9px;font-size:13px;color:var(--ink-2);cursor:default;font-variant-numeric:tabular-nums;
}
.cal-grid .cal-day.other{color:var(--line)}
.cal-grid .cal-day.today{background:var(--brand);color:#fff;font-weight:700;box-shadow:0 4px 10px -2px rgba(37,99,235,.5)}

/* ---- 壁纸设置 ---- */
.wall-wrap{padding:14px;height:100%;overflow:auto}
.wall-wrap .sec-title{font-size:13px;font-weight:700;color:var(--ink);margin:14px 0 10px}
.wall-wrap .sec-title:first-child{margin-top:0}
.wall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.wall-thumb{aspect-ratio:16/10;border-radius:10px;cursor:pointer;border:3px solid transparent;overflow:hidden;position:relative;transition:border-color .12s}
.wall-thumb:hover{border-color:var(--brand-border)}
.wall-thumb.on{border-color:var(--brand)}
.wall-thumb .t{position:absolute;left:4px;bottom:4px;font-size:10px;color:#fff;background:rgba(0,0,0,.45);padding:1px 7px;border-radius:6px;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wall-modes{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.wall-mode{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;cursor:pointer;color:var(--ink-3);transition:.15s;font-family:inherit}
.wall-mode.on{background:var(--brand);border-color:var(--brand);color:#fff}
.wall-upload{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
.wall-upload .note{font-size:11px;color:var(--muted-2)}
.openmode-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg-soft-2)}
.openmode-row .om-txt{flex:1;font-size:13px;color:var(--ink-2)}
.openmode-row .om-txt small{display:block;color:var(--muted-2);font-size:11px;margin-top:2px}
.switch{position:relative;width:44px;height:24px;flex:none;cursor:pointer}
.switch input{opacity:0;width:0;height:0}
.switch .sl{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.2s}
.switch .sl::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.switch input:checked + .sl{background:var(--brand)}
.switch input:checked + .sl::before{transform:translateX(20px)}
.wall-close{display:flex;justify-content:flex-end;margin-top:16px}

/* ============ 公告信息块（右上角常驻）与紧急通知（屏幕中间悬浮滚动） ============ */
.notice-panel{
  position:absolute;top:14px;right:14px;width:320px;max-width:calc(100vw - 40px);z-index:3;
  background:rgba(15,23,42,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-radius:16px;overflow:hidden;
  border:1px solid rgba(96,165,250,.35);
  box-shadow:0 18px 50px -16px rgba(0,0,0,.6),0 0 0 1px rgba(59,130,246,.15),0 0 24px -8px rgba(59,130,246,.25);
  display:none;animation:menuIn .3s ease;
}
.notice-panel.show{display:block}
.notice-panel::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand-light),#22d3ee,var(--brand-light));background-size:200% 100%;
  animation:npShine 4s linear infinite;
}
@keyframes npShine{0%{background-position:0% 0}100%{background-position:200% 0}}
.notice-panel .np-head{
  display:flex;align-items:center;gap:8px;padding:11px 14px;
  background:linear-gradient(135deg,rgba(59,130,246,.28),rgba(29,78,216,.12));
}
.notice-panel .np-head .np-ic{font-size:17px;animation:npBell 2.2s ease-in-out infinite}
@keyframes npBell{0%,90%,100%{transform:rotate(0)}92%{transform:rotate(12deg)}96%{transform:rotate(-8deg)}98%{transform:rotate(4deg)}}
.notice-panel .np-head .np-t{font-size:13px;font-weight:700;color:var(--bg-soft);flex:1;letter-spacing:1px}
.notice-panel .np-head .np-time{font-size:10.5px;color:rgba(226,232,240,.55)}
.notice-panel .np-head .np-close{border:none;background:rgba(255,255,255,.08);color:rgba(226,232,240,.75);cursor:pointer;font-size:13px;width:24px;height:24px;border-radius:8px;line-height:1}
.notice-panel .np-head .np-close:hover{color:#fff;background:rgba(239,68,68,.6)}
.notice-panel .np-body{padding:13px 15px;color:var(--line-2);font-size:13px;line-height:1.85;max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-all}
.notice-panel .np-body::first-line{color:var(--brand-border);font-weight:600}
.notice-panel .np-foot{padding:8px 15px;font-size:10.5px;color:rgba(226,232,240,.45);border-top:1px solid rgba(255,255,255,.08);text-align:right;letter-spacing:.5px}

/* 紧急通知：屏幕最中间一长条悬浮滚动，红色大字 + 警告特效 */
.ticker{
  position:fixed;left:50%;top:46%;transform:translate(-50%,-50%);z-index:9800;
  width:min(860px,94vw);min-height:56px;
  background:linear-gradient(90deg,rgba(185,28,28,.96),rgba(220,38,38,.95),rgba(153,27,27,.96));
  border:2px solid #fca5a5;border-radius:14px;
  display:none;align-items:stretch;overflow:hidden;
  box-shadow:0 0 0 4px rgba(239,68,68,.25),0 18px 50px -12px rgba(153,27,27,.7);
  animation:warnFrame 1s ease-in-out infinite;
}
.ticker.show{display:flex}
@keyframes warnFrame{
  0%,100%{box-shadow:0 0 0 4px rgba(239,68,68,.35),0 18px 50px -12px rgba(153,27,27,.7)}
  50%{box-shadow:0 0 0 10px rgba(239,68,68,.12),0 18px 50px -12px rgba(153,27,27,.85)}
}
.ticker .tk-label{
  flex:none;display:flex;align-items:center;gap:8px;padding:0 16px;min-height:100%;
  background:rgba(0,0,0,.28);color:var(--danger-soft);font-size:15px;font-weight:800;letter-spacing:2px;
}
.ticker .tk-label::before{content:"⚠️";font-size:19px;animation:warnShake .9s ease-in-out infinite}
@keyframes warnShake{0%,100%{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-9deg)}80%{transform:rotate(5deg)}}
.ticker .tk-track{flex:1;overflow:hidden;white-space:nowrap;position:relative;display:flex;align-items:center}
.ticker .tk-text{
  display:inline-block;color:#fff;font-size:20px;font-weight:800;line-height:56px;
  padding-left:100%;animation:tickScroll linear infinite;letter-spacing:1px;text-shadow:0 2px 6px rgba(0,0,0,.35);
}
@keyframes tickScroll{0%{transform:translateX(0)}100%{transform:translateX(-200%)}}

/* ============ 手机端 ============ */
@media(max-width:768px){
  .desk-icon{width:96px;padding:10px 4px 8px}
  .desk-icon .ic{width:54px;height:54px;border-radius:15px}
  .desk-icon .name{font-size:11.5px}
  .taskbar{padding:0 8px;gap:6px}
  .start-btn .txt{display:none}
  .start-btn{padding:8px 10px}
  .taskbar-time .date{display:none}
  .win{min-width:0;width:100%!important;height:100%!important;left:0!important;top:0!important;border-radius:0}
  .login-card{padding:34px 24px 24px}
  .calc-screen .val{font-size:28px}
  .notice-panel{top:10px;right:10px;width:240px}
  .ticker{top:40%;width:94vw;min-height:48px}
  .ticker .tk-text{font-size:16px;line-height:48px}
  /* 手机端窗口：标题栏做顶栏样式，窗口控制按钮加大 */
  .win-bar{height:44px;padding:0 6px 0 12px}
  .win-btn{width:40px;height:32px;font-size:14px}
  .win-title{font-size:14px}
}
/* 平板断点：图标间距更舒展、任务栏字号微调 */
@media(min-width:769px) and (max-width:1024px){
  .desk-icon{width:104px}
  .desk-icon .ic{width:56px;height:56px;border-radius:16px}
  .taskbar{gap:8px;padding:0 10px}
  .start-menu{width:300px}
  .notice-panel{width:280px}
}