/* Shared desk shell: boot veil, reveal, skeleton rows, status toast.
   One source for the employee portal (served by tune-desk-service) and the
   Master panel (extension). Namespaced .desk-* so it layers on either page. */
.desk-veil{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;background:#080808;color:#eee;font:14px system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.desk-veil{transition:opacity .38s ease}
.desk-veil.desk-veil-out{opacity:0;pointer-events:none}
.desk-veil[hidden]{display:none}
.desk-veil-mark{display:grid;justify-items:center;gap:10px}
.desk-veil-mark>span{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#ef7d22;color:#fff;font-size:25px;font-weight:800}
.desk-veil-mark>strong{font-size:20px;letter-spacing:-.01em}
.desk-veil-stage{display:block;min-height:18px;color:#aaa;font-size:13px;text-align:center}
.desk-veil-bar{width:150px;height:3px;border-radius:3px;background:#262626;overflow:hidden}
.desk-veil-bar>i{display:block;height:100%;width:40%;background:#ef7d22;animation:desk-veil-slide 1.1s ease-in-out infinite}
.desk-veil-error .desk-veil-bar{display:none}
.desk-veil-error .desk-veil-stage{color:#ff987b}
@keyframes desk-veil-slide{0%{transform:translateX(-110%)}100%{transform:translateX(360%)}}
/* The desk fades in from the same black the veil used: no flash, no jump. */
.desk-reveal{animation:desk-reveal .42s ease-out both}
/* The desk stays solid under the dissolving veil: no double-fade grey wash. */
@keyframes desk-reveal{from{transform:translateY(6px)}to{transform:none}}
/* Placeholder rows keep the table's height while real rows load. */
.desk-skeleton-row td{padding:14px 15px;border-bottom:1px solid #1f1f1f}
.desk-skeleton{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,#1a1a1a 0%,#262626 50%,#1a1a1a 100%);background-size:220% 100%;animation:desk-shimmer 1.2s linear infinite}
@keyframes desk-shimmer{from{background-position:120% 0}to{background-position:-100% 0}}
/* Transient status as a toast: it never pushes the layout around. */
.desk-status{position:fixed;left:50%;bottom:18px;z-index:2147482000;transform:translateX(-50%);max-width:min(760px,92vw);padding:9px 14px;border:1px solid #3d3d3d;border-radius:10px;background:#1a1a1a;color:#e2e2e2;font-size:12px;line-height:1.4;box-shadow:0 10px 30px #000b;animation:desk-reveal .18s ease-out both;pointer-events:none}
.desk-status[hidden]{display:none!important}
.desk-status[data-disk="offline"]{border-color:#8a3b2a;color:#ffb39e}
@media (prefers-reduced-motion:reduce){.desk-veil-bar>i,.desk-skeleton{animation:none}.desk-reveal,.desk-status{animation:none}.desk-veil{transition:none}}
