/* Geometry placeholders only: no minimum display time or delayed reveal. */
.ui-skeleton { display:block; width:100%; max-width:100%; height:14px; border-radius:4px; background:var(--skeleton-color,#e8edf4); animation:ui-skeleton-pulse 1.6s ease-in-out infinite; }
.ui-skeleton + .ui-skeleton { margin-top:12px; }
.ui-skeleton-long { width:72%; }
.ui-skeleton-short { width:42%; height:11px; }
.ui-skeleton-label { width:90px; height:12px; margin-bottom:10px; }
.ui-skeleton-value { width:200px; height:30px; margin:18px 0; }
.ui-skeleton-input,.ui-skeleton-search { height:42px; }
.ui-skeleton-search { max-width:560px; }
.ui-skeleton-textarea { height:150px; }
.ui-skeleton-avatar { width:40px; height:40px; border-radius:50%; flex:0 0 40px; }
.skeleton-surface { padding:24px; background:var(--color-surface,#fff); border:1px solid var(--color-border,#e5e7eb); border-radius:12px; min-width:0; }
.skeleton-surface h2 { font-size:17px; margin:0 0 18px; }
.skeleton-row { display:flex; align-items:center; gap:24px; padding:22px 24px; min-height:86px; border-bottom:1px solid var(--color-border,#e5e7eb); }
.skeleton-row:last-child { border-bottom:0; }
.skeleton-row-copy { flex:1; min-width:0; }
.skeleton-row-meta { width:15%; }
.skeleton-row-end { width:12%; }
.skeleton-count { width:76px; flex:0 0 76px; }
.skeleton-tag-filters > .ui-skeleton { width:95px; height:30px; margin:0; }
.director-metric-featured { --skeleton-color:#53617e; }
.skeleton-agenda-copy { height:176px; }
.skeleton-agenda-copy > .ui-skeleton { margin-top:18px; }
.skeleton-surface .skeleton-row { padding:20px 0; }
.skeleton-columns { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:24px; }
.skeleton-agenda { margin-bottom:24px; }
.skeleton-chart { height:280px; display:flex; align-items:flex-end; gap:12px; padding:20px 0 0; }
.skeleton-chart .ui-skeleton { flex:1; margin:0; }
.skeleton-filters { display:block; }
.skeleton-filter-controls { display:flex; gap:14px; margin-top:18px; }
.skeleton-filter-controls > .ui-skeleton { max-width:220px; margin:0; }
.skeleton-fields .ui-skeleton-input { margin-top:0; }
.skeleton-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.skeleton-fields + * { margin-top:24px; }
.skeleton-editor { max-width:900px; margin:0 auto; display:grid; gap:24px; }
.skeleton-record { display:flex; align-items:center; gap:20px; }
.skeleton-record > div { flex:1; }
.skeleton-tabs { display:flex; gap:32px; padding:24px 0; }
.skeleton-tabs > .ui-skeleton { margin:0; }
.skeleton-list-tabs { padding:8px 0 20px; }
.skeleton-note-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.skeleton-settings { display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; }
.skeleton-settings nav { display:flex; flex-direction:column; gap:20px; padding:16px; }
.skeleton-calendar-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:20px; }
.skeleton-calendar-layout > * { min-width:0; }
.skeleton-calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:92px; }
.skeleton-calendar-toolbar .ui-skeleton-input { width:180px; }
.skeleton-calendar { border:1px solid var(--color-border,#e5e7eb); border-radius:10px; overflow:hidden; background:var(--color-surface,#fff); }
.skeleton-calendar-days,.skeleton-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.skeleton-calendar-days > div { padding:20px 8px; min-width:0; border-bottom:1px solid var(--color-border,#e5e7eb); }
.skeleton-calendar-grid { height:480px; background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,var(--color-border,#e5e7eb) 59px,var(--color-border,#e5e7eb) 60px); }
.skeleton-calendar-grid > div { padding:35px 8px; border-right:1px solid var(--color-border,#e5e7eb); }
.ui-skeleton-event { height:64px; }
.skeleton-calendar-grid > div:nth-child(2n) { padding-top:130px; }
.skeleton-calendar-grid > div:nth-child(3n) { padding-top:250px; }
.skeleton-assistant { min-height:65vh; max-width:1000px; margin:auto; display:flex; flex-direction:column; justify-content:space-between; gap:40px; }
.skeleton-assistant-welcome { padding:36px 0; }
.skeleton-assistant-welcome > .ui-skeleton { margin:18px auto; }
.skeleton-assistant > .ui-skeleton-textarea { height:90px; }
.skeleton-conversation { display:flex; align-items:center; gap:12px; padding:18px 16px; }
.skeleton-conversation > div { flex:1; min-width:0; }
.skeleton-messages { display:flex; flex-direction:column; gap:24px; padding:24px 12px; }
.skeleton-messages > div { width:65%; padding:18px; border-radius:12px; background:var(--color-surface,#fff); }
.skeleton-messages > div:nth-child(2n) { align-self:flex-end; width:50%; }
.calendar-skeleton-list { display:none; }
.page-load-error { padding:20px; margin:20px 0; border:1px solid var(--color-border,#e5e7eb); border-radius:10px; background:var(--color-surface,#fff); }
.page-load-error p { margin:0 0 16px; }
.page-load-error .btn { margin:0 8px 8px 0; }
@keyframes ui-skeleton-pulse { 50% { opacity:.45; } }
@media (max-width:900px) {
    .skeleton-calendar-layout { grid-template-columns:minmax(0,1fr); }
    .skeleton-calendar-layout > aside { display:none; }
    .skeleton-columns { grid-template-columns:minmax(0,1fr); }
    .skeleton-note-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
    .calendar-skeleton-list { display:block; }
    .calendar-skeleton-week { display:none; }
    .skeleton-surface { padding:18px; }
    .skeleton-row { gap:14px; padding:20px 16px; }
    .skeleton-row-meta { display:none; }
    .skeleton-row-end { width:22%; }
    .skeleton-filter-controls { display:none; }
    .skeleton-fields { grid-template-columns:minmax(0,1fr); gap:20px; }
    .skeleton-settings { grid-template-columns:minmax(0,1fr); gap:16px; }
    .skeleton-settings nav { flex-direction:row; gap:16px; padding:8px 0; overflow:auto; }
    .skeleton-note-grid { grid-template-columns:minmax(0,1fr); }
    .skeleton-calendar-grid { height:420px; }
    .skeleton-calendar-days > div,.skeleton-calendar-grid > div { padding-left:4px; padding-right:4px; }
    .skeleton-calendar-toolbar .ui-skeleton { max-width:45%; }
    .skeleton-assistant-welcome { padding:0; }
}
@media (prefers-reduced-motion:reduce) { .ui-skeleton { animation:none; } }
