@font-face { font-family: "Inter Fallback"; src: local("Arial"), local("ArialMT"), local("Helvetica"); size-adjust: 107.12%; ascent-override: 90.44%; descent-override: 22.52%; line-gap-override: 0%; }
@font-face { font-family: "Source Serif Fallback"; src: local("Georgia"), local("Times New Roman"); size-adjust: 100%; ascent-override: 103.6%; descent-override: 33.5%; line-gap-override: 0%; }
@font-face { font-family: "JetBrains Mono Fallback"; src: local("Courier New"), local("Menlo"), local("Consolas"); size-adjust: 100%; ascent-override: 102%; descent-override: 30%; line-gap-override: 0%; }

.sk { pointer-events: none; user-select: none; }
.skel.sk-tx { display: inline-block; vertical-align: middle; height: 0.72em; min-height: 8px; max-width: 100%; border-radius: var(--radius-xs); }
.skel.sk-tx.sm { height: 0.62em; }
.sk-l { display: block; line-height: 1.55; font-size: 13.5px; }
.sk-l.sm { font-size: 12px; }
.sk-l.lg { font-size: 20px; line-height: 1.3; }
.sk-lines { padding: 2px 0; }
.sk-grow { flex: 1; min-width: 0; display: block; }
.sk-row { display: flex; align-items: center; gap: 12px; min-width: 0; }
.sk-gap { margin-top: 14px; }
.sk-person { display: flex; align-items: center; gap: 10px; }
.sk-inline { display: inline-flex; vertical-align: middle; }
.skel.sk-badge { display: inline-block; width: 64px; height: 22px; border-radius: var(--radius-full); vertical-align: middle; }
.skel.sk-box { display: inline-block; width: 16px; height: 16px; border-radius: 4px; vertical-align: middle; }
.skel.sk-btn { display: inline-block; width: 28px; height: 28px; border-radius: var(--radius-sm); vertical-align: middle; }
.skel.sk-icon { width: 28px; height: 28px; border-radius: 8px; flex: none; }
.skel.skel-avatar.sk-28 { width: 28px; height: 28px; position: relative; z-index: 1; }
.skel.sk-input { height: 36px; border-radius: var(--radius); }
.sk-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sk-tr td { height: 1px; }
.sk-table { table-layout: fixed; }
.sk-stat .stat-value, .sk-stat .stat-label { display: block; }
.sk-card .card-body { padding: 18px 20px; }
.sk-chart { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 8px 4px 0; }
.sk-bars { flex: 1; display: flex; align-items: flex-end; gap: 3%; min-height: 0; padding: 0 2%; }
.skel.sk-bar { flex: 1; min-width: 0; border-radius: 4px 4px 0 0; }
.skel.sk-axis { height: 8px; border-radius: var(--radius-xs); }
.sk-board-card { cursor: default; }
.sk-board-card:hover { box-shadow: none; border-color: var(--border); }
.sk-drawer { display: flex; flex-direction: column; gap: 16px; }
.sk-badges { gap: 8px; }
.sk-kv { display: grid; grid-template-columns: minmax(90px, 30%) 1fr; gap: 6px 16px; }
.sk-section { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 1px solid var(--divider); }
.sk-feed .feed-item::before { display: none; }
.sk-cal .cal-dow .sk-tx { width: 40%; }
.skel.sk-num { width: 22px; height: 22px; border-radius: 50%; }
.skel.sk-event { height: 18px; border-radius: 5px; }
.sk-chat { display: flex; flex-direction: column; gap: 18px; padding: 8px 0; }
.sk-msg { display: flex; align-items: flex-start; gap: 10px; max-width: 78%; }
.sk-msg.me { flex-direction: row-reverse; align-self: flex-end; }
.sk-msg .sk-bubble { display: block; min-width: 220px; padding: 10px 14px; border-radius: var(--radius-lg); background: var(--surface-2); border: 1px solid var(--border); }
.sk-form { display: flex; flex-direction: column; gap: 16px; }
.sk-form .field { margin: 0; }
.sk-timeline { display: flex; flex-direction: column; }
.sk-tl-row { display: grid; grid-template-columns: minmax(140px, 26%) 1fr; gap: 12px; align-items: center; min-height: 40px; border-bottom: 1px solid var(--divider); padding: 0 12px; }
.sk-tl-label { font-size: 13px; line-height: 1.5; }
.sk-tl-track { display: block; }
.skel.sk-tl-bar { height: 18px; border-radius: var(--radius-full); }
.is-refreshing { opacity: .55; transition: opacity 160ms var(--ease) 120ms; }

.nav-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 2000; pointer-events: none; transform-origin: 0 50%; transform: scaleX(0); opacity: 0; background: var(--primary); box-shadow: 0 0 8px color-mix(in oklab, var(--primary) 60%, transparent); will-change: transform, opacity; }
.nav-progress.run { opacity: 1; transform: scaleX(.8); transition: transform 8s cubic-bezier(.08, .7, .2, 1), opacity 120ms linear; }
.nav-progress.done { opacity: 0; transform: scaleX(1); transition: transform 180ms var(--ease-out), opacity 220ms linear 160ms; }

dialog.drawer[open] { animation-duration: 220ms; }
.timer-pill { animation-duration: 200ms; }
.timer-pill.restored { animation: none; }

@supports (overlay: auto) {
  dialog.modal, dialog.drawer { transition: display 180ms allow-discrete, overlay 180ms allow-discrete, opacity 180ms var(--ease); }
  dialog.modal:not([open]), dialog.drawer:not([open]) { opacity: 0; pointer-events: none; }
  dialog.drawer { transition-property: display, overlay, opacity, transform; transition-duration: 180ms; transition-timing-function: var(--ease); }
  dialog.drawer:not([open]) { transform: translateX(40px); }
  dialog.modal .modal-panel { transition: transform 180ms var(--ease); }
  dialog.modal:not([open]) .modal-panel { transform: translateY(8px) scale(.98); }
  dialog.modal::backdrop, dialog.drawer::backdrop { transition: display 180ms allow-discrete, overlay 180ms allow-discrete, opacity 180ms var(--ease); }
  dialog.modal:not([open])::backdrop, dialog.drawer:not([open])::backdrop { opacity: 0; }
}
@supports (transition-behavior: allow-discrete) {
  @media (min-width: 901px) {
    .menu { transition: display 140ms allow-discrete, opacity 140ms var(--ease), transform 140ms var(--ease); }
    .menu:not(.open) { opacity: 0; transform: translateY(-4px) scale(.98); pointer-events: none; }
    .menu.up:not(.open) { transform: translateY(4px) scale(.98); }
  }
}

@view-transition { navigation: auto; }
.sidebar { view-transition-name: app-sidebar; }
.topbar { view-transition-name: app-topbar; }
.cl-side { view-transition-name: client-side; }
.cl-top { view-transition-name: client-top; }
::view-transition-group(*) { animation-duration: 160ms; animation-timing-function: var(--ease); }
::view-transition-old(root) { animation: 120ms var(--ease) both vt-fade-out; }
::view-transition-new(root) { animation: 160ms var(--ease) both vt-fade-in; }
::view-transition-old(app-sidebar), ::view-transition-new(app-sidebar), ::view-transition-old(app-topbar), ::view-transition-new(app-topbar),
::view-transition-old(client-side), ::view-transition-new(client-side), ::view-transition-old(client-top), ::view-transition-new(client-top) { animation: none; mix-blend-mode: normal; }
@keyframes vt-fade-out { to { opacity: 0; } }
@keyframes vt-fade-in { from { opacity: 0; } }

.cv-rows > * { content-visibility: auto; contain-intrinsic-size: auto 48px; }

@media (max-width: 900px) {
  .sidebar { view-transition-name: none; }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  .nav-progress.run { transition: opacity 120ms linear; transform: scaleX(.6); }
  .is-refreshing { transition: none; }
}
.is-refreshing:has(> .sk), .is-refreshing:has(> .sk-wrap) { opacity: 1; }
.tk-row.sk .tk-accent { background: var(--border-strong); }
.td-is-loading .td-footer > :not(.td-footer-meta) { visibility: hidden; }
.table td.cell-title.tnum, .table td.cell-title.tnum > a, .table td.cell-title.tnum > .btn-link, .cl-content .table a.cell-title { white-space: nowrap; }
.portal-top > .fw-600 { white-space: nowrap; flex: none; }
.portal-top > .ml-auto { min-width: 0; text-align: right; }
