/* Lock Screen */
.lock-overlay{position:fixed;inset:0;z-index:50000;background:linear-gradient(135deg,#0a0a1a,#1a1030);display:flex;align-items:center;justify-content:center;}
.lock-overlay.hidden{display:none;}
.lock-center{display:flex;flex-direction:column;align-items:center;gap:14px;}
.lock-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--os-accent,#4f46e5),#7c3aed);display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;font-weight:600;}
.lock-name{font-size:16px;color:#fff;}
.lock-time{font-size:38px;font-weight:200;color:rgba(255,255,255,0.9);}
.lock-pin-input{padding:10px 16px;border-radius:20px;border:0.5px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.08);color:#fff;font-size:16px;text-align:center;letter-spacing:6px;outline:none;width:180px;}
.lock-error{color:#fca5a5;font-size:12px;}
.lock-unlock-btn{padding:10px 24px;border-radius:20px;background:rgba(255,255,255,0.1);border:0.5px solid rgba(255,255,255,0.2);color:#fff;cursor:pointer;font-size:13px;}

/* Onboarding */
.onboarding-overlay{position:fixed;inset:0;z-index:60000;background:linear-gradient(135deg,#05050f,#1a1030);display:flex;align-items:center;justify-content:center;}
.onboarding-overlay.hidden{display:none;}
.ob-card{background:rgba(20,20,35,0.9);border:0.5px solid rgba(255,255,255,0.12);border-radius:18px;padding:36px 40px;max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.ob-logo{width:64px;height:64px;margin-bottom:6px;}
.ob-card h2{font-size:20px;color:#fff;font-weight:500;}
.ob-card p{font-size:13px;color:rgba(255,255,255,0.5);line-height:1.6;}
.ob-input{width:100%;padding:10px 14px;border-radius:8px;border:0.5px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.08);color:#fff;font-size:14px;text-align:center;outline:none;}
.ob-btn-primary{padding:10px 22px;border-radius:10px;background:var(--os-accent,#4f46e5);border:none;color:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;margin-top:6px;}
.ob-skin-grid,.ob-wp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;}
.ob-skin-tile,.ob-wp-tile{padding:14px 8px;border-radius:10px;background:rgba(255,255,255,0.06);border:0.5px solid rgba(255,255,255,0.12);color:rgba(255,255,255,0.7);font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;}
.ob-skin-tile.active,.ob-wp-tile.active{border-color:var(--os-accent,#4f46e5);background:rgba(79,70,229,0.2);color:#fff;}
.ob-skin-tile span{font-size:20px;}
.ob-check{width:56px;height:56px;border-radius:50%;background:rgba(34,197,94,0.2);color:#86efac;display:flex;align-items:center;justify-content:center;font-size:26px;}

/* Notification Center */
.notif-badge{position:absolute;top:-4px;right:-6px;background:#ef4444;color:#fff;font-size:8px;border-radius:8px;padding:1px 4px;min-width:14px;text-align:center;line-height:1.4;}
/* Same fix as #start-menu: position:fixed, top/bottom set inline by JS from
   the taskbar's real bounding box rather than a possibly-stale CSS variable. */
.notif-center{position:fixed;right:6px;width:300px;max-height:60vh;background:rgba(8,8,20,0.97);border:0.5px solid var(--border);border-radius:14px;overflow:hidden;z-index:3000;backdrop-filter:blur(24px);display:flex;flex-direction:column;}
.notif-center.hidden{display:none;}
.nc-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:0.5px solid var(--border);font-size:12px;font-weight:500;color:var(--text);}
.nc-clear{background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;}
.nc-clear:hover{color:var(--text);}
.nc-list{overflow-y:auto;padding:6px;}
.nc-item{display:flex;gap:10px;padding:9px 10px;border-radius:8px;}
.nc-item:hover{background:rgba(255,255,255,0.05);}
.nc-item i{margin-top:2px;color:var(--os-accent);}
.nc-item-msg{font-size:12px;color:var(--text);}
.nc-item-time{font-size:10px;color:var(--text-muted);margin-top:2px;}
.nc-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:12px;}

/* Workspace switcher — virtual desktop pills */
.ws-switcher{display:flex;align-items:center;gap:4px;padding:0 6px;flex-shrink:0;border-right:0.5px solid rgba(255,255,255,0.08);margin-right:4px;}
.ws-pill{position:relative;display:flex;align-items:center;justify-content:center;padding:0 10px;height:26px;min-width:26px;border-radius:7px;background:rgba(255,255,255,0.06);border:0.5px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.55);font-size:10px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s,color .15s;}
.ws-pill:hover{background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.22);color:rgba(255,255,255,0.85);transform:translateY(-1px);}
.ws-pill.active{background:var(--os-accent,#4f46e5);color:#fff;border-color:var(--os-accent,#4f46e5);box-shadow:0 0 0 2px rgba(79,70,229,0.25),0 2px 8px rgba(79,70,229,0.4);}
.ws-pill.active:hover{background:var(--os-accent,#4f46e5);transform:translateY(-1px);filter:brightness(1.1);}
.ws-pill-dot{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:currentColor;opacity:0.6;}
.ws-add-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:transparent;border:0.5px dashed rgba(255,255,255,0.25);color:rgba(255,255,255,0.4);cursor:pointer;transition:all .15s;}
.ws-add-btn:hover{color:#fff;background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.4);border-style:solid;transform:scale(1.05);}

/* Theme preset tiles (settings) */
.sp-preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:10px 12px;}
.sp-preset-tile{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;background:rgba(255,255,255,0.05);border:0.5px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.75);font-size:11px;cursor:pointer;}
.sp-preset-tile.active{border-color:var(--pc,#4f46e5);background:rgba(255,255,255,0.1);}
.sp-preset-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}

/* Calendar popup (opens from taskbar clock) */
#calendar-popup{position:fixed;width:340px;background:rgba(8,8,20,0.97);border:0.5px solid var(--border);border-radius:14px;padding:14px;z-index:2500;backdrop-filter:blur(28px);}
#calendar-popup.hidden{display:none;}
.cal-strip-wrap{margin-bottom:12px;}
.cal-strip-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;}
.cal-strip{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;scroll-behavior:smooth;}
.cal-strip::-webkit-scrollbar{height:4px;}
.cal-strip::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:4px;}
.cal-strip-day{flex-shrink:0;width:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0;border-radius:9px;background:rgba(255,255,255,0.04);cursor:default;}
.cal-strip-wk{font-size:8px;color:var(--text-muted);text-transform:uppercase;}
.cal-strip-num{font-size:13px;color:var(--text);font-weight:500;}
.cal-strip-day.cal-today{background:linear-gradient(135deg,var(--os-accent),var(--os-accent2));}
.cal-strip-day.cal-today .cal-strip-wk,.cal-strip-day.cal-today .cal-strip-num{color:#fff;}
.cal-strip-years .cal-strip-day{width:auto;min-width:44px;padding:8px 6px;cursor:pointer;}
.cal-strip-years .cal-strip-day:hover{background:rgba(255,255,255,0.1);}
.cal-strip-years .cal-strip-day.cal-viewing{border:1px solid var(--os-accent);background:color-mix(in srgb,var(--os-accent) 15%,transparent);}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.cal-month{font-size:12px;font-weight:500;color:var(--text);}
.cal-nav{width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,0.07);border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.cal-nav:hover{background:rgba(255,255,255,0.15);color:var(--text);}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;}
.cal-weekdays span{text-align:center;font-size:9px;color:var(--text-muted);font-weight:500;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-cell{display:flex;align-items:center;justify-content:center;height:26px;border-radius:6px;font-size:11px;color:var(--text);}
.cal-empty{visibility:hidden;}
.cal-today{background:var(--os-accent,#4f46e5);color:#fff;font-weight:600;}
.cal-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:0.5px solid var(--border);}
.cal-today-label{font-size:10px;color:var(--text-muted);}
.cal-today-btn{padding:4px 10px;border-radius:6px;background:rgba(255,255,255,0.08);border:0.5px solid var(--border);color:var(--text);font-size:10px;cursor:pointer;}
.cal-today-btn:hover{background:rgba(255,255,255,0.15);}

/* Confirm modal (replaces native window.confirm for anything install/launch related) */
.cm-overlay{position:fixed;inset:0;z-index:70000;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;animation:cm-fade-in .15s ease;}
@keyframes cm-fade-in{from{opacity:0;}to{opacity:1;}}
.cm-box{background:rgba(18,18,32,0.98);border:0.5px solid var(--border);border-radius:14px;padding:22px 24px;width:340px;box-shadow:0 24px 60px rgba(0,0,0,0.5);}
.cm-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px;}
.cm-message{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:18px;}
.cm-input{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:8px;border:0.5px solid var(--border-strong);background:rgba(255,255,255,0.06);color:var(--text);font-size:12px;outline:none;margin-bottom:16px;}
.cm-input:focus{border-color:var(--os-accent);}
.cm-actions{display:flex;justify-content:flex-end;gap:8px;}
.cm-btn{padding:7px 16px;border-radius:8px;border:none;font-size:12px;cursor:pointer;font-weight:500;}
.cm-cancel{background:rgba(255,255,255,0.08);color:var(--text);}
.cm-cancel:hover{background:rgba(255,255,255,0.14);}
.cm-primary{background:var(--os-accent,#4f46e5);color:#fff;}
.cm-primary:hover{filter:brightness(1.1);}
.cm-danger{background:#ef4444;color:#fff;}
.cm-danger:hover{background:#dc2626;}
