.auth-locked body > header,.auth-locked body > .layout { display:none !important; }
.auth-gate { position:relative; min-height:100vh; display:grid; place-items:center; background:#f4f6f6; padding:96px 24px; }
.auth-gate[hidden] { display:none; }
.auth-card { width:min(100%,460px); padding:40px; border:1px solid #d8e1e1; border-radius:16px; background:white; color:#002528; box-shadow:0 16px 60px #00252810; }
.auth-brand { position:absolute; top:32px; left:32px; display:block; }
.auth-brand img { display:block; width:150px; height:auto; }
.auth-card h1 { font-size:28px; margin:0 0 16px; }
.auth-card p { line-height:1.6; margin:0 0 24px; }
.auth-card small { display:block; margin-top:20px; line-height:1.6; color:#62848c; }
.auth-card .button { display:flex; width:fit-content; max-width:100%; margin:0 auto 8px; }
.auth-card .button[hidden] { display:none; }
#auth-identity { font-size:12px; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
#auth-sign-out { color:#000; }
@media(max-width:480px) { .auth-brand { top:24px; left:24px; } .auth-brand img { width:130px; } .auth-card { padding:28px; } }

/* Reveal the workspace only after profile preferences and the first view are ready. */
.workspace-loading body > header,.workspace-loading body > .layout{visibility:hidden}
#workspace-loading{display:none}
.workspace-loading:not(.auth-locked) #workspace-loading{position:fixed;inset:0;z-index:80;display:block;overflow:auto;background:var(--page,#f4f6f6);pointer-events:none}
.skeleton-accessible-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.workspace-skeleton{min-height:100vh;color:#002528}
.skeleton-block{display:block;background:#e2e9e9;border-radius:5px;height:12px;position:relative;overflow:hidden}
.skeleton-block::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 15%,#ffffff85 50%,transparent 85%);transform:translateX(-100%);animation:workspace-shimmer 1.8s ease-in-out infinite}
.skeleton-header{height:80px;background:#002528;display:flex;align-items:center;padding:0 32px;gap:40px}
.skeleton-header img{width:121px;height:35px;object-fit:contain}
.skeleton-top-links{display:flex;gap:28px}.skeleton-top-links .skeleton-block{width:65px;height:12px;background:#315558}
.skeleton-account{margin-left:auto;display:flex;align-items:center;gap:20px}.skeleton-account .skeleton-block{width:110px;background:#315558}.skeleton-account .skeleton-avatar{width:32px;height:32px;border-radius:50%}
.skeleton-layout{display:flex;min-height:calc(100vh - 80px)}
.skeleton-sidebar{width:200px;flex-shrink:0;background:white;border-right:1px solid var(--line,#d8e1e1);padding:30px 22px;position:relative}

.skeleton-nav-item{display:flex;align-items:center;gap:12px;height:43px}.skeleton-icon{width:17px;height:17px}.skeleton-nav-label{width:110px;height:11px}.skeleton-nav-item:nth-child(3n) .skeleton-nav-label{width:85px}
.skeleton-project-label{margin:34px 0 14px}.skeleton-project-label .skeleton-block{width:95px;height:9px}.skeleton-dot{width:8px;height:8px;border-radius:50%}
.skeleton-sidebar-bottom{position:absolute;bottom:24px;left:22px;right:22px}.skeleton-sidebar-bottom .skeleton-block{height:38px}
.skeleton-main{flex:1;min-width:0;padding:30px 35px}
.skeleton-breadcrumb .skeleton-block{width:140px;height:10px}
.skeleton-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:34px 0 30px}.skeleton-heading>div{flex:1}
.skeleton-title{width:240px;max-width:85%;height:32px;margin-bottom:13px}.skeleton-subtitle{width:330px;max-width:90%;height:12px}.skeleton-action{width:110px;height:37px}
.skeleton-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line,#d8e1e1)}
.skeleton-tabs{width:135px;height:34px;margin-right:auto}.skeleton-search{width:220px;height:34px}.skeleton-filter{width:100px;height:34px}
.skeleton-statuses{display:flex;gap:10px;margin:20px 0}.skeleton-statuses .skeleton-block{width:95px;height:30px;border-radius:16px}
.skeleton-result{margin:20px 0 16px}.skeleton-result .skeleton-block{width:135px;height:10px}
.skeleton-table{border:1px solid var(--line,#d8e1e1);border-radius:9px;background:white;overflow:hidden}
.skeleton-table-row{display:grid;grid-template-columns:.7fr 2.3fr 1.3fr 1fr 1fr .8fr;gap:28px;align-items:center;padding:19px 16px;border-bottom:1px solid var(--line,#d8e1e1)}
.skeleton-table-row:last-child{border-bottom:0}.skeleton-table-head{background:#f8fafa;padding-top:15px;padding-bottom:15px}.skeleton-table-head .skeleton-block{height:9px;width:65%}.skeleton-table-row:nth-child(3n) .skeleton-task{width:75%}.skeleton-code{width:65%}.skeleton-status{height:21px;border-radius:12px}
@keyframes workspace-shimmer{to{transform:translateX(100%)}}
@media(min-width:1650px){.skeleton-main{padding:35px 50px}}
@media(max-width:1150px){.skeleton-sidebar{width:195px}.skeleton-main{padding:24px 20px}.skeleton-filter{width:70px}.skeleton-table-row{gap:16px}}
@media(max-width:760px){.skeleton-header{height:70px;padding:0 16px;gap:24px}.skeleton-header img{width:85px;height:30px}.skeleton-top-links{gap:16px}.skeleton-top-links .skeleton-block{width:40px;height:10px}.skeleton-account,.skeleton-sidebar{display:none}.skeleton-layout{min-height:calc(100vh - 70px)}.skeleton-main{padding:20px 16px}.skeleton-heading{margin:28px 0;gap:12px}.skeleton-action{width:70px;height:32px}.skeleton-title{width:180px;height:28px}.skeleton-search{width:110px}.skeleton-filter{display:none}.skeleton-statuses{gap:8px}.skeleton-statuses .skeleton-block{width:70px;height:26px}.skeleton-table-row{grid-template-columns:.8fr 2fr 1fr;gap:15px}.skeleton-table-row .skeleton-block:nth-child(n+4){display:none}}
@media(prefers-reduced-motion:reduce){.skeleton-block::after{animation:none;display:none}}

/* Content and action-form skeletons reuse the workspace shimmer. */
.page-loading-skeleton{width:100%;padding:8px 0;pointer-events:none}
.loading-card{padding:25px;background:white;border:1px solid var(--line,#d8e1e1);border-radius:9px}
.loading-title{height:28px;width:65%;margin:12px 0 28px}
.loading-task-columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(220px,1fr);gap:28px}
.loading-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}
.loading-label{width:42%;height:10px;margin-bottom:12px}.loading-input{width:90%;height:25px}
.loading-paragraph{height:95px;width:95%;margin-top:25px}
.loading-tab-row{display:flex;gap:18px;margin-top:40px;padding-bottom:16px;border-bottom:1px solid var(--line,#d8e1e1)}.loading-tab-row .skeleton-block{width:90px;height:12px}
.loading-chatter{padding:28px 10px}.loading-message{display:flex;align-items:flex-start;gap:15px;margin-bottom:45px}.loading-avatar{width:36px;height:36px;flex-shrink:0;border-radius:50%}.loading-message>div{flex:1}.loading-message-text{width:85%;height:35px;margin-top:15px}
.loading-calendar-controls{display:flex;gap:12px;margin:8px 0 24px}.loading-calendar-controls .skeleton-block{width:85px;height:34px}.loading-calendar-controls .skeleton-block:last-child{width:200px;margin-left:12px}
.loading-calendar{border:1px solid var(--line,#d8e1e1);border-radius:8px;overflow:hidden;background:white}
.loading-calendar-row{display:grid;grid-template-columns:190px repeat(7,minmax(0,1fr));min-height:64px;border-bottom:1px solid var(--line,#d8e1e1)}.loading-calendar-row:last-child{border:0}
.loading-calendar-cell{padding:18px 10px;border-right:1px solid var(--line,#d8e1e1);min-width:0}.loading-calendar-cell:last-child{border:0}.loading-resource{height:13px;width:85%}.loading-shift{height:26px}
.loading-calendar-row:nth-child(2n) .loading-calendar-cell:nth-child(3n) .loading-shift,.loading-calendar-row:nth-child(3n) .loading-calendar-cell:nth-child(2n) .loading-shift{visibility:hidden}
@media(max-width:760px){.loading-task-columns{grid-template-columns:1fr}.loading-chatter{display:none}.loading-field-grid{gap:22px 16px}.loading-card{padding:18px}.loading-calendar-row{grid-template-columns:95px repeat(7,minmax(0,1fr));min-height:55px}.loading-calendar-cell{padding:17px 5px}.loading-calendar-controls .skeleton-block:last-child{width:110px}.loading-title{height:24px}}
