/* Canonical-only loading states and actionable calendar summary. */
.sp-loading-page{min-height:680px}
.sp-loading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.sp-loading-grid i{display:block;min-height:190px;border:1px solid #d8e2ef;border-radius:8px;background:linear-gradient(100deg,#fff 20%,#f2f6fb 38%,#fff 56%);background-size:260% 100%;animation:rwt-canonical-loading 1.35s ease-in-out infinite}
.sp-loading-grid i:nth-child(2){animation-delay:.08s}.sp-loading-grid i:nth-child(3){animation-delay:.16s}.sp-loading-grid i:nth-child(4){animation-delay:.24s}
@keyframes rwt-canonical-loading{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.sp-loading-grid i{animation:none;background:#f5f8fc}}
.sp-error-page{min-height:520px;padding-top:64px}.sp-error-page .sp-title{max-width:680px}.sp-error-page .sp-button{margin-top:8px}
.sp-inline-loading{grid-column:1/-1;min-height:320px;display:grid;place-items:center;color:#526786;font-size:14px}
.month-totals{display:grid;grid-template-columns:1.15fr repeat(3,1fr);padding:0;overflow:hidden}
.month-totals button{min-width:0;min-height:72px;padding:12px 22px;border:0;border-left:1px solid #dce5f0;background:#fff;color:#123778;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,color .15s ease}
.month-totals button:first-child{border-left:0}.month-totals button:hover{background:#f5f8ff}.month-totals button:focus-visible{position:relative;z-index:1;outline:3px solid rgba(24,87,204,.3);outline-offset:-3px}
.month-totals button.selected{background:#eef4ff;box-shadow:inset 0 -3px #1b58c8;color:#0b439e}
.month-total-label{font-weight:750!important;text-align:center!important}
.month-total{display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px!important}
.month-total i{grid-row:1;font-size:11px;font-style:normal}.month-total strong{grid-row:1;font-size:15px}.month-total span{grid-row:1;padding:0!important;border:0!important;color:inherit!important}.month-total small{grid-column:1/-1;margin-top:5px;color:#557096;font-size:10px;font-weight:650}
.month-total.task i{color:#175bc3}.month-total.key i{color:#d51e24}.month-total.meeting i{color:#5536a6}
@media(max-width:760px){.sp-loading-grid{grid-template-columns:1fr}.sp-loading-grid i{min-height:130px}.month-totals{grid-template-columns:1fr 1fr}.month-totals button{border-top:1px solid #dce5f0}.month-totals button:nth-child(odd){border-left:0}.month-total-label{text-align:left!important}}

/* Page-shaped loading states: the real information architecture appears immediately while the
   local Notion mirror is read. One moving highlight communicates progress without fake content. */
.sp-page-skeleton{margin-top:26px;color:transparent;--sk-base:#edf2f8;--sk-light:#f9fbfe}
.sp-page-skeleton i,.sp-skeleton-card,.sp-skeleton-work,.sp-skeleton-calendar>section,.sp-skeleton-calendar>aside,.sp-skeleton-resource-grid>section,.sp-skeleton-links,.sp-skeleton-request-table{position:relative;overflow:hidden;background:var(--sk-base)}
.sp-page-skeleton i::after,.sp-skeleton-card::after,.sp-skeleton-work::after,.sp-skeleton-calendar>section::after,.sp-skeleton-calendar>aside::after,.sp-skeleton-resource-grid>section::after,.sp-skeleton-links::after,.sp-skeleton-request-table::after{content:"";position:absolute;inset:0;transform:translateX(-105%);background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.82) 48%,transparent 72%);animation:rwt-page-shimmer 1.35s cubic-bezier(.22,.61,.36,1) infinite}
@keyframes rwt-page-shimmer{to{transform:translateX(105%)}}
.sp-skeleton-line{display:block;height:11px;border-radius:5px;margin:10px 0;background:#dce5f0!important}.sp-skeleton-line.title{width:58%;height:18px}.sp-skeleton-line.short{width:24%;height:8px}.sp-skeleton-line.medium{width:44%}.sp-skeleton-line.wide{width:76%}.sp-skeleton-line.tiny{width:18%}
.sp-skeleton-home{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.8fr);gap:22px}.sp-skeleton-section-head{display:flex;justify-content:space-between;align-items:center}.sp-skeleton-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sp-skeleton-projects.browse{grid-template-columns:repeat(3,minmax(0,1fr))}.sp-skeleton-card{min-height:210px;border:1px solid #dbe3ef;border-radius:10px;padding:18px;background:#f5f8fc}.sp-skeleton-home aside{display:grid;align-content:start;gap:15px}.sp-skeleton-work{min-height:270px;border:1px solid #dbe3ef;border-radius:10px;padding:18px}.sp-skeleton-work.compact{min-height:150px}
.sp-skeleton-toolbar{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;border:1px solid #dbe3ef;border-radius:10px;padding:13px 18px;background:#fff}.sp-skeleton-toolbar .sp-skeleton-line{margin:0}
.sp-skeleton-calendar{display:grid;grid-template-columns:minmax(0,3fr) minmax(240px,1fr);gap:16px}.sp-skeleton-calendar>section,.sp-skeleton-calendar>aside{min-height:510px;border:1px solid #dbe3ef;border-radius:10px;padding:14px;background:#f8fafd}.sp-skeleton-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px}.sp-skeleton-week i{height:18px;border-radius:4px}.sp-skeleton-days{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:83px;gap:6px}.sp-skeleton-days i{border:1px solid #dce5ef;border-radius:6px;background:#f0f4f9}.sp-skeleton-calendar>aside .sp-skeleton-line{margin:18px 4px}.sp-skeleton-totals{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px;border:1px solid #dbe3ef;border-radius:10px;overflow:hidden}.sp-skeleton-totals i{height:72px;border-left:1px solid #dbe3ef}.sp-skeleton-totals i:first-child{border-left:0}
.sp-skeleton-people{display:grid;grid-template-columns:minmax(0,3fr) minmax(250px,1fr);gap:18px}.sp-skeleton-people>section{border:1px solid #dbe3ef;border-radius:10px;background:#fff;overflow:hidden}.sp-skeleton-table-head,.sp-skeleton-person{display:grid;grid-template-columns:minmax(220px,1.25fr) .7fr 1fr 1fr .6fr;gap:18px;align-items:center;padding:14px 18px;border-bottom:1px solid #e0e7f0}.sp-skeleton-table-head i{height:9px;border-radius:4px}.sp-skeleton-person{min-height:74px}.sp-skeleton-person .avatar{width:38px;height:38px;border-radius:50%}.sp-skeleton-people aside .profile{min-height:250px}
.sp-skeleton-tabs{display:flex;gap:26px;min-height:50px;border-bottom:1px solid #dbe3ef}.sp-skeleton-tabs i{width:110px;height:12px;margin-top:16px;border-radius:5px}.sp-skeleton-resource-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.sp-skeleton-resource-grid>section{min-height:360px;border:1px solid #dbe3ef;border-radius:10px;padding:18px}.sp-skeleton-resource-grid .sp-skeleton-line{margin:22px 0}.sp-skeleton-links{min-height:150px;margin-top:16px;border:1px solid #dbe3ef;border-radius:10px;padding:18px}
.sp-skeleton-request-types{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sp-skeleton-request-types .request{min-height:270px}.sp-skeleton-request-table{min-height:180px;margin-top:20px;border:1px solid #dbe3ef;border-radius:10px;padding:18px}
@media(prefers-reduced-motion:reduce){.sp-page-skeleton i::after,.sp-skeleton-card::after,.sp-skeleton-work::after,.sp-skeleton-calendar>section::after,.sp-skeleton-calendar>aside::after,.sp-skeleton-resource-grid>section::after,.sp-skeleton-links::after,.sp-skeleton-request-table::after{animation:none;display:none}}
@media(max-width:900px){.sp-skeleton-home,.sp-skeleton-calendar,.sp-skeleton-people,.sp-skeleton-resource-grid{grid-template-columns:1fr}.sp-skeleton-projects.browse{grid-template-columns:repeat(2,1fr)}.sp-skeleton-calendar>aside,.sp-skeleton-people>aside{display:none}}
@media(max-width:620px){.sp-loading-page{min-height:540px}.sp-skeleton-projects,.sp-skeleton-projects.browse,.sp-skeleton-request-types{grid-template-columns:1fr}.sp-skeleton-projects .sp-skeleton-card:nth-child(n+3),.sp-skeleton-request-types .sp-skeleton-card:nth-child(n+3){display:none}.sp-skeleton-table-head{display:none}.sp-skeleton-person{grid-template-columns:42px 1fr 70px}.sp-skeleton-person .sp-skeleton-line:nth-last-child(-n+2){display:none}.sp-skeleton-days{grid-auto-rows:58px}.sp-skeleton-calendar>section{min-height:390px}.sp-skeleton-totals{grid-template-columns:1fr 1fr}}
