/* Athikar internal workspace mascot: protected, presentation-only desktop companion. */
#athikarMascot {
  --athikar-frame-offset: 0px;
  --athikar-frame-width: 96px;
  --athikar-frame-height: 104px;
  --athikar-container-width: 112px;
  --athikar-container-height: 116px;
  --athikar-greeting-shift-x: 0px;
  --athikar-greeting-shift-y: 0px;
  position: fixed;
  box-sizing: border-box;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(58px, calc(env(safe-area-inset-bottom) + 58px));
  z-index: 180;
  display: grid;
  place-items: end center;
  width: var(--athikar-container-width);
  height: var(--athikar-container-height);
  margin: 0;
  padding: 12px 8px 0;
  border: 0;
  border-radius: 24px;
  background: transparent;
  color: #0f172a;
  cursor: grab;
  isolation: isolate;
  overflow: visible;
  -webkit-tap-highlight-color: transparent;
  touch-action: none;
  user-select: none;
  transition: filter 160ms ease;
}

#athikarMascot[hidden] {
  display: none !important;
}

#athikarMascot:hover .athikar-mascot-sprite,
#athikarMascot:focus-visible .athikar-mascot-sprite {
  transform: translateY(-2px);
}

#athikarMascot.is-dragging {
  z-index: 190;
  cursor: grabbing;
  transition: none;
}

#athikarMascot.is-dragging .athikar-mascot-sprite {
  transform: none;
}

body.floating-buttons-locked #athikarMascot {
  cursor: pointer;
}

#athikarMascot:focus-visible {
  outline: 3px solid color-mix(in srgb, #2563eb 72%, white);
  outline-offset: 3px;
}

#athikarMascot .athikar-mascot-sprite {
  position: relative;
  z-index: 1;
  display: block;
  width: var(--athikar-frame-width);
  height: var(--athikar-frame-height);
  overflow: hidden;
  border-radius: 20px 20px 14px 14px;
  filter: drop-shadow(0 7px 6px rgb(15 23 42 / 0.22));
  transition: transform 160ms ease;
}

#athikarMascot .athikar-mascot-sprite-image {
  display: block;
  width: calc(var(--athikar-frame-width) + var(--athikar-frame-width) + var(--athikar-frame-width));
  max-width: none;
  height: var(--athikar-frame-height);
  image-rendering: auto;
  pointer-events: none;
  user-select: none;
  transform: translate3d(var(--athikar-frame-offset), 0, 0);
}

#athikarMascot[data-athikar-frame="1"] {
  --athikar-frame-offset: calc(0px - var(--athikar-frame-width));
}

#athikarMascot[data-athikar-frame="2"] {
  --athikar-frame-offset: calc(0px - var(--athikar-frame-width) - var(--athikar-frame-width));
}

#athikarMascot .athikar-mascot-greeting {
  position: absolute;
  top: -24px;
  left: 50%;
  z-index: 2;
  box-sizing: border-box;
  width: max-content;
  max-width: min(240px, calc(100vw - 24px));
  padding: 7px 12px 6px;
  border: 1px solid rgb(148 163 184 / 0.44);
  border-radius: 999px;
  background: rgb(255 255 255 / 0.96);
  box-shadow: 0 8px 22px rgb(15 23 42 / 0.16);
  color: #0f3c78;
  font-family: "Noto Sans Khmer", "Khmer OS Siemreap", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
  opacity: 0;
  pointer-events: none;
  text-align: center;
  white-space: normal;
  transform: translate(
    calc(-50% + var(--athikar-greeting-shift-x)),
    calc(5px + var(--athikar-greeting-shift-y))
  ) scale(0.96);
  transform-origin: 50% 100%;
  transition: opacity 150ms ease, transform 150ms ease;
}

#athikarMascot .athikar-mascot-greeting::after {
  position: absolute;
  bottom: -5px;
  left: 50%;
  width: 9px;
  height: 9px;
  border-right: 1px solid rgb(148 163 184 / 0.44);
  border-bottom: 1px solid rgb(148 163 184 / 0.44);
  background: inherit;
  content: "";
  transform: translateX(-50%) rotate(45deg);
}

#athikarMascot[data-athikar-greeting="true"] .athikar-mascot-greeting {
  opacity: 1;
  transform: translate(
    calc(-50% + var(--athikar-greeting-shift-x)),
    var(--athikar-greeting-shift-y)
  ) scale(1);
}

/* Expanded mode uses a body-level floating launcher so the standard PaperDesk
   drag, edge-snap, group, lock, and persistence behavior applies unchanged. */
html body:has(.app-shell:not(.sidebar-collapsed)) #floatingAthikarDeskButton:not(.is-positioned) {
  left: calc(var(--pd-table-lab-rail-width, 41px) - 16px) !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(
    var(--pd-sidebar-footer-search-bottom, 10px) +
    var(--pd-sidebar-footer-search-size, 36px) +
    var(--pd-sidebar-rail-footer-gap, 8px)
  ) !important;
}

#floatingAthikarDeskButton .floating-athikar-desk-icon {
  display: block !important;
  width: calc(16px * var(--floating-button-scale, 1)) !important;
  height: calc(16px * var(--floating-button-scale, 1)) !important;
  flex: 0 0 auto !important;
  color: currentColor !important;
  fill: none !important;
  stroke: currentColor !important;
  pointer-events: none !important;
}

/* The shared shadcn shell deliberately uses display: inline-flex !important. */
#floatingAthikarDeskButton[hidden],
#floatingAthikarDeskButton.shadcn-toggle-bookmark[data-slot="toggle"][hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Authenticated sidebar assistant. The standing, draggable mascot remains a
   separate workspace control; this host only owns the seated desk card. */
#athikarDeskDock {
  position: absolute !important;
  inset: auto 10px 56px auto !important;
  z-index: 2147482500 !important;
  box-sizing: border-box;
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 0.13);
  border-radius: 999px;
  background: #06080d;
  box-shadow: 0 10px 24px rgb(15 23 42 / 0.2), inset 0 1px rgb(255 255 255 / 0.05);
  pointer-events: auto;
  transition: width 210ms cubic-bezier(0.22, 1, 0.36, 1), height 210ms cubic-bezier(0.22, 1, 0.36, 1), border-radius 180ms ease, box-shadow 160ms ease;
}

#athikarDeskDock[hidden] {
  display: none !important;
}

#athikarDeskDock[data-athikar-dock-open="true"] {
  width: 210px !important;
  min-width: 210px !important;
  height: 144px !important;
  min-height: 144px !important;
  border-radius: 12px;
  box-shadow: 0 16px 34px rgb(15 23 42 / 0.28), inset 0 1px rgb(255 255 255 / 0.07);
}

/* Expanded mode launches the card from the separate movable white button.
   Keep this internal host invisible while closed; rail mode continues to use
   its existing gold action and never exposes the full seated artwork. */
#athikarDeskDock[data-athikar-dock-mode="expanded"]:not([data-athikar-dock-open="true"]) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#athikarDeskDock[data-athikar-dock-mode="expanded"][data-athikar-dock-open="true"] {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

#athikarDeskDockToggle {
  position: absolute;
  inset: -1px auto auto -1px;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  align-items: center;
  gap: 0;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #11151e, #080b11);
  color: #f8fafc;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 160ms ease, color 160ms ease, inset 210ms cubic-bezier(0.22, 1, 0.36, 1), width 210ms cubic-bezier(0.22, 1, 0.36, 1);
}

#athikarDeskDockToggle:hover {
  background: linear-gradient(180deg, #171c27, #0b0f16);
}

#athikarDeskDockToggle:focus-visible,
#athikarDeskAssistant:focus-visible,
#athikarDeskRoutineToggle:focus-visible {
  outline: 3px solid color-mix(in srgb, #60a5fa 76%, white);
  outline-offset: -3px;
}

#athikarDeskDockToggle .athikar-desk-toggle-monogram {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgb(248 210 122 / 0.68);
  border-radius: 50%;
  background: rgb(248 210 122 / 0.1);
  color: #f8d27a;
  font-family: "Geist", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 760;
  line-height: 1;
}

#athikarDeskDockToggle .athikar-desk-toggle-label {
  display: none;
}

#athikarDeskDockToggle svg {
  display: none;
  width: 16px;
  height: 16px;
  transition: transform 200ms ease;
}

#athikarDeskDock[data-athikar-dock-open="true"] #athikarDeskDockToggle {
  inset: 8px 8px auto auto;
  grid-template-columns: 1fr;
  width: 30px;
  height: 30px;
  padding: 0;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 0.16);
  border-radius: 9px;
  background: rgb(4 7 12 / 0.76);
  backdrop-filter: blur(8px);
}

#athikarDeskDock[data-athikar-dock-open="true"] #athikarDeskDockToggle :is(.athikar-desk-toggle-monogram, .athikar-desk-toggle-label) {
  display: none;
}

#athikarDeskDock[data-athikar-dock-open="true"] #athikarDeskDockToggle svg {
  display: block;
  transform: rotate(180deg);
}

#athikarDeskDockPanel {
  position: absolute;
  inset: 0;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  height: 144px;
  overflow: hidden;
  border-radius: inherit;
  background:
    radial-gradient(circle at 50% 32%, rgb(30 41 59 / 0.5), transparent 54%),
    linear-gradient(180deg, #090d15, #030509);
  opacity: 0;
  pointer-events: none;
  transform: translateY(18px);
  visibility: hidden;
  transition: transform 210ms cubic-bezier(0.22, 1, 0.36, 1), opacity 150ms ease, visibility 0s linear 210ms;
}

#athikarDeskDock[data-athikar-dock-open="true"] #athikarDeskDockPanel {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
  transition-delay: 0s;
}

#athikarDeskAssistant {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: #fff;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}

#athikarDeskRoutineToggle {
  position: absolute;
  inset: auto auto 8px 8px;
  z-index: 4;
  display: grid;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  place-items: center;
  border: 1px solid rgb(96 165 250 / 0.52);
  border-radius: 9px;
  background: rgb(4 7 12 / 0.82);
  box-shadow: 0 5px 14px rgb(0 0 0 / 0.28), inset 0 1px rgb(255 255 255 / 0.08);
  color: #93c5fd;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
  -webkit-tap-highlight-color: transparent;
}

#athikarDeskRoutineToggle[hidden] {
  display: none !important;
}

#athikarDeskRoutineToggle:hover:not(:disabled) {
  border-color: rgb(248 210 122 / 0.72);
  color: #f8d27a;
  transform: translateY(-1px);
}

#athikarDeskRoutineToggle:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

#athikarDeskRoutineToggle[data-state="on"] {
  border-color: rgb(248 210 122 / 0.82);
  background: rgb(36 29 13 / 0.9);
  color: #f8d27a;
}

#athikarDeskRoutineToggle svg {
  width: 15px;
  height: 15px;
}

#athikarDeskRoutineToggle .athikar-desk-routine-stop-icon,
#athikarDeskRoutineToggle[data-state="on"] .athikar-desk-routine-play-icon {
  display: none;
}

#athikarDeskRoutineToggle[data-state="on"] .athikar-desk-routine-stop-icon {
  display: block;
}

#athikarDeskAssistant .athikar-desk-portrait {
  position: absolute;
  inset: 3px 6px 0;
  display: grid;
  place-items: end center;
  overflow: hidden;
  pointer-events: none;
}

#athikarDeskAssistant :is(.athikar-desk-sprite-image, .athikar-desk-pose-image) {
  grid-area: 1 / 1;
  display: block;
  width: auto;
  height: min(138px, 100%);
  max-width: 184px;
  object-fit: contain;
  filter: drop-shadow(0 9px 10px rgb(0 0 0 / 0.34));
  opacity: 0;
  pointer-events: none;
  user-select: none;
  transition: opacity 110ms ease, transform 180ms ease;
}

#athikarDeskAssistant .athikar-desk-sprite-image {
  opacity: 1;
}

#athikarDeskDock:is(
  [data-athikar-desk-pose="sampeah"],
  [data-athikar-desk-pose="blink"],
  [data-athikar-desk-pose="review"],
  [data-athikar-desk-pose="nod"]
) #athikarDeskAssistant .athikar-desk-sprite-image {
  opacity: 0;
}

#athikarDeskDock[data-athikar-desk-pose="sampeah"] #athikarDeskAssistant [data-athikar-desk-pose="sampeah"],
#athikarDeskDock[data-athikar-desk-pose="blink"] #athikarDeskAssistant [data-athikar-desk-pose="blink"],
#athikarDeskDock[data-athikar-desk-pose="review"] #athikarDeskAssistant [data-athikar-desk-pose="review"],
#athikarDeskDock[data-athikar-desk-pose="nod"] #athikarDeskAssistant [data-athikar-desk-pose="nod"] {
  opacity: 1;
}

/* Finite live motion reuses the approved stills instead of synthesizing new
   artwork. Each semantic pose moves once, returns to its aligned resting
   geometry, and remains governed by the existing runtime timer/state owner. */
#athikarDeskDock[data-athikar-desk-pose="sampeah"] #athikarDeskAssistant [data-athikar-desk-pose="sampeah"] {
  transform-origin: 50% 92%;
  animation: athikarDeskSampeahLive 760ms cubic-bezier(0.22, 1, 0.36, 1) 1;
}

/* Blink is the one pose whose canvas is pixel-aligned with neutral apart from
   the eyelids. Keeping neutral below it makes the close/open read naturally. */
#athikarDeskDock[data-athikar-desk-pose="blink"] #athikarDeskAssistant .athikar-desk-sprite-image {
  opacity: 1;
}

#athikarDeskDock[data-athikar-desk-pose="blink"] #athikarDeskAssistant [data-athikar-desk-pose="blink"] {
  animation: athikarDeskBlinkLive 180ms linear 1 both;
  transition: none;
}

#athikarDeskDock[data-athikar-desk-pose="review"] #athikarDeskAssistant [data-athikar-desk-pose="review"] {
  transform-origin: 50% 92%;
  animation: athikarDeskReviewLive 360ms cubic-bezier(0.22, 1, 0.36, 1) 1;
}

#athikarDeskDock[data-athikar-desk-pose="nod"] #athikarDeskAssistant [data-athikar-desk-pose="nod"] {
  transform-origin: 50% 76%;
  animation: athikarDeskNodLive 620ms cubic-bezier(0.22, 1, 0.36, 1) 1;
}

@keyframes athikarDeskSampeahLive {
  0% {
    transform: translateY(-1px) scale(0.992);
  }

  42% {
    transform: translateY(2px) scale(0.996);
  }

  74% {
    transform: translateY(0) scale(1.002);
  }

  100% {
    transform: none;
  }
}

@keyframes athikarDeskBlinkLive {
  0%,
  100% {
    opacity: 0;
  }

  28%,
  68% {
    opacity: 1;
  }
}

@keyframes athikarDeskReviewLive {
  0% {
    transform: translateY(1px);
  }

  48% {
    transform: translateY(-1px);
  }

  100% {
    transform: none;
  }
}

@keyframes athikarDeskNodLive {
  0%,
  100% {
    transform: none;
  }

  34% {
    transform: translateY(2px);
  }

  62% {
    transform: translateY(-1px);
  }

  78% {
    transform: translateY(1px);
  }
}

/* The work routine draws only compact desk props over the approved seated
   portraits. Face, uniform, hands, desk, and the independent standing mascot
   remain owned by the protected bitmap assets. */
#athikarDeskAssistant .athikar-desk-routine-layer {
  position: relative;
  z-index: 1;
  grid-area: 1 / 1;
  align-self: end;
  justify-self: center;
  width: min(184px, 100%);
  height: min(138px, 100%);
  pointer-events: none;
  transition: transform 180ms ease;
}

#athikarDeskAssistant .athikar-desk-routine-book {
  position: absolute;
  top: 70.3%;
  left: 50.8%;
  z-index: 1;
  width: 32.6%;
  height: 13.8%;
  opacity: 0;
  perspective: 160px;
  transform: rotate(-1deg);
}

#athikarDeskAssistant .athikar-desk-routine-page {
  position: absolute;
  top: 0;
  width: 51%;
  height: 100%;
  border: 1px solid rgb(248 210 122 / 0.54);
  background:
    repeating-linear-gradient(180deg, transparent 0 3px, rgb(30 64 175 / 0.18) 3px 4px),
    linear-gradient(145deg, rgb(255 251 235 / 0.98), rgb(226 232 240 / 0.94));
  box-shadow: 0 2px 5px rgb(0 0 0 / 0.3);
  backface-visibility: hidden;
}

#athikarDeskAssistant .athikar-desk-routine-page-left {
  left: 0;
  border-radius: 4px 1px 1px 4px;
  transform: rotateY(12deg);
  transform-origin: 100% 50%;
}

#athikarDeskAssistant .athikar-desk-routine-page-right {
  right: 0;
  border-radius: 1px 4px 4px 1px;
  transform: rotateY(-12deg);
  transform-origin: 0 50%;
}

#athikarDeskAssistant .athikar-desk-routine-book::after {
  position: absolute;
  top: 22%;
  left: 8%;
  z-index: 2;
  width: 84%;
  height: 1px;
  border-radius: 999px;
  background: rgb(96 165 250 / 0.72);
  box-shadow: 0 0 4px rgb(96 165 250 / 0.44);
  content: "";
  opacity: 0;
  pointer-events: none;
}

#athikarDeskAssistant .athikar-desk-routine-pen {
  position: absolute;
  top: 74%;
  left: 56%;
  z-index: 2;
  width: 9%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #1e3a5f 0 68%, #f8d27a 68% 88%, #f8fafc 88%);
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.38);
  opacity: 0;
  transform: rotate(-19deg);
  transform-origin: 100% 50%;
}

#athikarDeskAssistant .athikar-desk-routine-thought {
  position: absolute;
  top: 28%;
  left: 69.5%;
  z-index: 2;
  display: flex;
  width: 18%;
  height: 14%;
  align-items: center;
  justify-content: center;
  gap: 3px;
  border: 1px solid rgb(96 165 250 / 0.3);
  border-radius: 999px;
  background: rgb(4 7 12 / 0.68);
  opacity: 0;
}

#athikarDeskAssistant .athikar-desk-routine-thought > span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #f8d27a;
  box-shadow: 0 0 4px rgb(248 210 122 / 0.34);
  opacity: 0.28;
}

#athikarDeskAssistant .athikar-desk-routine-computer {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  transform-origin: 66% 72%;
}

#athikarDeskAssistant .athikar-desk-routine-screen {
  position: absolute;
  top: 54.9%;
  left: 51%;
  width: 31.5%;
  height: 17%;
  border: 1px solid rgb(248 210 122 / 0.66);
  border-radius: 4px 4px 2px 2px;
  background:
    linear-gradient(90deg, transparent 0 18%, rgb(96 165 250 / 0.24) 18% 22%, transparent 22%),
    linear-gradient(180deg, #17243a, #07101d);
  box-shadow: 0 3px 7px rgb(0 0 0 / 0.34), inset 0 0 8px rgb(96 165 250 / 0.16);
}

#athikarDeskAssistant .athikar-desk-routine-screen::after {
  position: absolute;
  inset: 5px 7px auto;
  height: 2px;
  border-radius: 999px;
  background: #f8d27a;
  box-shadow: 0 5px rgb(96 165 250 / 0.72), 0 10px rgb(96 165 250 / 0.36);
  content: "";
}

#athikarDeskAssistant .athikar-desk-routine-base {
  position: absolute;
  top: 70.3%;
  left: 48.5%;
  width: 37%;
  height: 4.5%;
  border: 1px solid rgb(248 210 122 / 0.46);
  border-radius: 1px 1px 5px 5px;
  background: linear-gradient(180deg, #334155, #111827);
  box-shadow: 0 2px 4px rgb(0 0 0 / 0.34);
}

#athikarDeskDock:is(
  [data-athikar-desk-routine-stage="open-book"],
  [data-athikar-desk-routine-stage="read"],
  [data-athikar-desk-routine-stage="write"],
  [data-athikar-desk-routine-stage="review"],
  [data-athikar-desk-routine-stage="think"]
) #athikarDeskAssistant .athikar-desk-routine-book {
  opacity: 1;
}

#athikarDeskDock[data-athikar-desk-routine-stage="open-book"] #athikarDeskAssistant .athikar-desk-routine-page-left {
  animation: athikarDeskRoutineBookLeftOpen 800ms cubic-bezier(0.22, 1, 0.36, 1) 1 both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="open-book"] #athikarDeskAssistant .athikar-desk-routine-page-right {
  animation: athikarDeskRoutineBookRightOpen 800ms cubic-bezier(0.22, 1, 0.36, 1) 1 both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="read"] #athikarDeskAssistant .athikar-desk-routine-book::after {
  animation: athikarDeskRoutineReadSweep 1200ms ease-in-out 2 both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="write"] #athikarDeskAssistant .athikar-desk-routine-pen {
  opacity: 1;
  animation: athikarDeskRoutineWrite 500ms ease-in-out 4 alternate both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="think"] #athikarDeskAssistant .athikar-desk-routine-thought {
  opacity: 1;
}

#athikarDeskDock[data-athikar-desk-routine-stage="think"] #athikarDeskAssistant .athikar-desk-routine-thought > span {
  animation: athikarDeskRoutineThink 640ms ease-in-out 2 both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="think"] #athikarDeskAssistant .athikar-desk-routine-thought > span:nth-child(2) {
  animation-delay: 120ms;
}

#athikarDeskDock[data-athikar-desk-routine-stage="think"] #athikarDeskAssistant .athikar-desk-routine-thought > span:nth-child(3) {
  animation-delay: 240ms;
}

#athikarDeskDock[data-athikar-desk-routine-stage="computer"] #athikarDeskAssistant .athikar-desk-routine-computer {
  opacity: 1;
  animation: athikarDeskRoutineComputerOpen 420ms cubic-bezier(0.22, 1, 0.36, 1) 1 both;
}

#athikarDeskDock[data-athikar-desk-routine-stage="computer"] #athikarDeskAssistant .athikar-desk-routine-screen {
  animation: athikarDeskRoutineComputerGlow 1000ms ease-in-out 2 alternate both;
}

#athikarDeskDock[data-athikar-desk-routine="active"][data-athikar-desk-pose="review"] #athikarDeskAssistant .athikar-desk-routine-layer {
  transform-origin: 50% 92%;
  animation: athikarDeskReviewLive 360ms cubic-bezier(0.22, 1, 0.36, 1) 1;
}

#athikarDeskDock[data-athikar-desk-routine="active"] #athikarDeskAssistant:is(:hover, :focus-visible) :is(
  .athikar-desk-sprite-image,
  .athikar-desk-pose-image,
  .athikar-desk-routine-layer
) {
  transform: none;
}

@keyframes athikarDeskRoutineBookLeftOpen {
  0% {
    opacity: 0.2;
    transform: translateX(72%) rotateY(-76deg);
  }

  100% {
    opacity: 1;
    transform: rotateY(12deg);
  }
}

@keyframes athikarDeskRoutineBookRightOpen {
  0% {
    opacity: 0.2;
    transform: translateX(-72%) rotateY(76deg);
  }

  100% {
    opacity: 1;
    transform: rotateY(-12deg);
  }
}

@keyframes athikarDeskRoutineReadSweep {
  0% {
    top: 22%;
    opacity: 0;
  }

  24%,
  74% {
    opacity: 0.82;
  }

  100% {
    top: 78%;
    opacity: 0;
  }
}

@keyframes athikarDeskRoutineWrite {
  0% {
    transform: translate(-2px, -1px) rotate(-19deg);
  }

  100% {
    transform: translate(5px, 2px) rotate(-13deg);
  }
}

@keyframes athikarDeskRoutineThink {
  0%,
  100% {
    opacity: 0.28;
    transform: translateY(1px);
  }

  50% {
    opacity: 1;
    transform: translateY(-2px);
  }
}

@keyframes athikarDeskRoutineComputerOpen {
  0% {
    opacity: 0;
    transform: perspective(120px) rotateX(68deg) scaleY(0.72);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

@keyframes athikarDeskRoutineComputerGlow {
  0% {
    box-shadow: 0 3px 7px rgb(0 0 0 / 0.34), inset 0 0 5px rgb(96 165 250 / 0.12);
  }

  100% {
    box-shadow: 0 3px 7px rgb(0 0 0 / 0.34), inset 0 0 12px rgb(96 165 250 / 0.34), 0 0 6px rgb(248 210 122 / 0.18);
  }
}

/* Long Analyze work may turn the far page corner twice while the approved
   review pose remains active. The explicit keyboard preview reuses one turn
   through its own preview attribute without impersonating AI work state. */
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-work="page-turn"] #athikarDeskAssistant .athikar-desk-portrait,
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-preview="review"] #athikarDeskAssistant .athikar-desk-portrait,
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-routine-stage="review"] #athikarDeskAssistant .athikar-desk-portrait {
  isolation: isolate;
  perspective: 160px;
}

#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-work="page-turn"] #athikarDeskAssistant .athikar-desk-portrait::after,
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-preview="review"] #athikarDeskAssistant .athikar-desk-portrait::after,
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-pose="review"][data-athikar-desk-routine-stage="review"] #athikarDeskAssistant .athikar-desk-portrait::after {
  position: absolute;
  top: 70%;
  right: 18%;
  z-index: 2;
  width: 20px;
  height: 10px;
  border: 1px solid rgb(248 210 122 / 0.48);
  border-radius: 2px;
  background:
    repeating-linear-gradient(
      180deg,
      transparent 0 2px,
      rgb(30 64 175 / 0.16) 2px 3px
    ),
    linear-gradient(
      135deg,
      rgb(255 251 235 / 0.96),
      rgb(226 232 240 / 0.92) 68%,
      rgb(248 210 122 / 0.34)
    );
  box-shadow: 0 2px 4px rgb(0 0 0 / 0.25);
  clip-path: polygon(0 18%, 100% 0, 94% 100%, 0 82%);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: rotateY(82deg) rotateZ(-4deg) translate3d(0, 0, 0);
  transform-origin: 0 82%;
  backface-visibility: hidden;
  animation: athikarDeskPageTurn 650ms cubic-bezier(0.22, 1, 0.36, 1) 1 both;
  will-change: transform, opacity;
}

#athikarDeskDock:is(
  [data-athikar-desk-work="page-turn"],
  [data-athikar-desk-preview="review"],
  [data-athikar-desk-routine-stage="review"]
) #athikarDeskAssistant:is(:hover, :focus-visible) [data-athikar-desk-pose="review"] {
  transform: none;
}

@keyframes athikarDeskPageTurn {
  0%,
  18% {
    opacity: 0;
    transform: rotateY(82deg) rotateZ(-4deg) translate3d(0, 0, 0);
  }

  32% {
    opacity: 0.72;
    transform: rotateY(54deg) rotateZ(-3deg) translate3d(0, -1px, 0);
  }

  56% {
    opacity: 0.94;
    transform: rotateY(0deg) rotateZ(0deg) translate3d(-1px, -3px, 0);
  }

  78% {
    opacity: 0.58;
    transform: rotateY(-62deg) rotateZ(3deg) translate3d(-2px, -1px, 0);
  }

  100% {
    opacity: 0;
    transform: rotateY(-82deg) rotateZ(4deg) translate3d(-3px, 0, 0);
  }
}

#athikarDeskAssistant:hover :is(.athikar-desk-sprite-image, .athikar-desk-pose-image),
#athikarDeskAssistant:focus-visible :is(.athikar-desk-sprite-image, .athikar-desk-pose-image) {
  transform: translateY(-2px) scale(1.012);
}

#athikarDeskAssistant .athikar-desk-copy {
  display: none;
}

#athikarDeskAssistant .athikar-desk-greeting {
  position: absolute;
  inset: 8px auto auto 8px;
  z-index: 2;
  display: none;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border: 1px solid rgb(248 210 122 / 0.5);
  border-radius: 999px;
  background: rgb(4 7 12 / 0.78);
  color: #f8d27a;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

#athikarDeskDock[data-athikar-greeting="true"] #athikarDeskAssistant .athikar-desk-greeting {
  display: inline-flex;
}

/* A new result or required-attention event follows the one visible desk
   surface. Motion is finite; no repeating notification loop is allowed. */
html[data-athikar-desk-attention="result"] {
  --athikar-attention-primary: rgb(96 165 250 / 0.42);
  --athikar-attention-secondary: rgb(248 210 122 / 0.3);
}

html[data-athikar-desk-attention="required"] {
  --athikar-attention-primary: rgb(248 210 122 / 0.44);
  --athikar-attention-secondary: rgb(96 165 250 / 0.28);
}

html[data-athikar-desk-attention] :is(
  #athikarDeskDock[data-athikar-dock-open="true"],
  #floatingAthikarDeskButton[data-state="off"]:not([hidden]),
  .sidebar-rail-footer-layer:not([hidden]) [data-sidebar-rail-footer-action="athikar"]:not([hidden])
) {
  animation: athikarDeskAttentionEdgePulse 1050ms cubic-bezier(0.22, 1, 0.36, 1) 2;
  will-change: filter;
}

/* Manual attention preview is isolated to the open desk. It does not write
   the shared result/error attention attribute used by real AI activity. */
#athikarDeskDock[data-athikar-dock-open="true"][data-athikar-desk-preview="attention"] {
  --athikar-attention-primary: rgb(96 165 250 / 0.42);
  --athikar-attention-secondary: rgb(248 210 122 / 0.3);
  animation: athikarDeskAttentionEdgePulse 1050ms cubic-bezier(0.22, 1, 0.36, 1) 2;
  will-change: filter;
}

@keyframes athikarDeskAttentionEdgePulse {
  0%,
  100% {
    filter: drop-shadow(0 0 0 transparent) drop-shadow(0 0 0 transparent);
  }

  38% {
    filter:
      drop-shadow(0 0 4px var(--athikar-attention-primary))
      drop-shadow(0 0 8px var(--athikar-attention-secondary));
  }

  68% {
    filter:
      drop-shadow(0 0 4px var(--athikar-attention-secondary))
      drop-shadow(0 0 8px var(--athikar-attention-primary));
  }
}

#athikarMascotSettings {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgb(148 163 184 / 0.24);
}

#athikarMascotSettings .athikar-mascot-settings-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

#athikarMascotSettings .athikar-mascot-settings-heading > div {
  display: grid;
  gap: 4px;
}

#athikarMascotSettings .athikar-mascot-settings-heading span:not(.floating-button-settings-badge) {
  color: var(--muted, #64748b);
  font-size: 0.82rem;
  line-height: 1.45;
}

#athikarMascotSettings .athikar-mascot-settings-grid {
  display: grid;
  gap: 10px;
}

#athikarMascotSettings .athikar-mascot-size-control {
  display: grid;
  gap: 9px;
  padding: 13px 14px;
  border: 1px solid rgb(148 163 184 / 0.24);
  border-radius: 14px;
  background: rgb(248 250 252 / 0.72);
}

#athikarMascotSettings .athikar-mascot-size-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#athikarMascotSettings .athikar-mascot-size-heading output {
  min-width: 4.5rem;
  color: var(--primary, #2563eb);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  text-align: right;
}

#athikarMascotSettings #athikarMascotSizeInput {
  width: 100%;
  accent-color: var(--primary, #2563eb);
  cursor: ew-resize;
}

#athikarMascotSettings .athikar-mascot-size-help {
  color: var(--muted, #64748b);
  font-size: 0.78rem;
  line-height: 1.4;
}

#athikarMascotSettings .athikar-mascot-position-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 2px;
}

#athikarMascotSettings .athikar-mascot-position-actions > span {
  max-width: 34rem;
  color: var(--muted, #64748b);
  font-size: 0.78rem;
  line-height: 1.4;
  text-align: right;
}

#athikarMascotSettings #resetAthikarMascotPositionButton {
  flex: 0 0 auto;
}

#athikarMascotSettings #resetAthikarMascotPositionButton:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

html.paperdesk-booting #athikarMascot,
html.paperdesk-protected-login-required #athikarMascot,
body.app-is-locked #athikarMascot,
body.sidebar-account-dialog-modal-open #athikarMascot,
body.account-profile-dialog-open #athikarMascot,
body:has(#appLockOverlay) #athikarMascot,
body:has(dialog[open]) #athikarMascot,
body:has(.ux-command-palette[aria-hidden="false"]) #athikarMascot,
body:has([role="dialog"][aria-modal="true"]:not(dialog):not(.ux-command-card)) #athikarMascot {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html.paperdesk-booting #athikarDeskDock,
html.paperdesk-protected-login-required #athikarDeskDock,
html.navigation-offcanvas-open #athikarDeskDock,
body.app-is-locked #athikarDeskDock,
body.sidebar-account-dialog-modal-open #athikarDeskDock,
body.account-profile-dialog-open #athikarDeskDock,
body.navigation-offcanvas-open #athikarDeskDock,
.app-shell.sidebar-offcanvas-open #athikarDeskDock,
body:has(#appLockOverlay) #athikarDeskDock,
body:has(dialog[open]) #athikarDeskDock,
body:has(.ux-command-palette[aria-hidden="false"]) #athikarDeskDock,
body:has([role="dialog"][aria-modal="true"]:not(dialog):not(.ux-command-card)) #athikarDeskDock {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.app-shell.sidebar-rail-mode:not(.sidebar-offcanvas-open) #athikarDeskDock,
.app-shell.sidebar-hidden-mode:not(.sidebar-offcanvas-open) #athikarDeskDock,
body.navigation-rail-mode .app-shell:not(.sidebar-offcanvas-open) #athikarDeskDock,
body.navigation-hidden-mode .app-shell:not(.sidebar-offcanvas-open) #athikarDeskDock {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 920px) {
  #athikarMascotSettings .athikar-mascot-position-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  #athikarMascotSettings .athikar-mascot-position-actions > span {
    text-align: left;
  }
}

@media (max-width: 768px) {
  #athikarDeskDock {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media print {
  #athikarMascot,
  #athikarDeskDock {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #athikarMascot,
  #athikarMascot .athikar-mascot-greeting,
  #athikarMascot .athikar-mascot-sprite,
  #athikarMascot .athikar-mascot-sprite-image {
    scroll-behavior: auto !important;
    transition: none !important;
  }

  #athikarDeskDock,
  #athikarDeskDockToggle,
  #athikarDeskDockToggle svg,
  #athikarDeskRoutineToggle,
  #athikarDeskDockPanel,
  #athikarDeskAssistant .athikar-desk-sprite-image,
  #athikarDeskAssistant .athikar-desk-pose-image,
  #athikarDeskAssistant .athikar-desk-greeting,
  #athikarDeskAssistant .athikar-desk-routine-layer,
  #athikarDeskAssistant .athikar-desk-routine-layer * {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }

  #athikarDeskAssistant :is(.athikar-desk-sprite-image, .athikar-desk-pose-image) {
    transform: none !important;
  }

  #athikarDeskDock:is(
    [data-athikar-desk-work="page-turn"],
    [data-athikar-desk-preview="review"],
    [data-athikar-desk-routine-stage="review"]
  ) #athikarDeskAssistant .athikar-desk-portrait::after {
    content: none !important;
    animation: none !important;
  }

  #athikarDeskAssistant .athikar-desk-routine-layer {
    display: none !important;
  }

  html[data-athikar-desk-attention] :is(
    #athikarDeskDock[data-athikar-dock-open="true"],
    #floatingAthikarDeskButton[data-state="off"]:not([hidden]),
    .sidebar-rail-footer-layer:not([hidden]) [data-sidebar-rail-footer-action="athikar"]:not([hidden])
  ) {
    animation: none !important;
    filter:
      drop-shadow(0 0 3px var(--athikar-attention-primary))
      drop-shadow(0 0 5px var(--athikar-attention-secondary)) !important;
    will-change: auto;
  }

  #athikarDeskDock[data-athikar-desk-preview="attention"] {
    animation: none !important;
    filter:
      drop-shadow(0 0 3px var(--athikar-attention-primary))
      drop-shadow(0 0 5px var(--athikar-attention-secondary)) !important;
    will-change: auto;
  }
}

@media (forced-colors: active) {
  #athikarDeskDock:is(
    [data-athikar-desk-work="page-turn"],
    [data-athikar-desk-preview="review"],
    [data-athikar-desk-routine-stage="review"]
  ) #athikarDeskAssistant .athikar-desk-portrait::after {
    content: none !important;
    animation: none !important;
  }

  #athikarDeskRoutineToggle {
    border-color: ButtonText;
    background: ButtonFace;
    color: ButtonText;
    forced-color-adjust: auto;
  }

  #athikarDeskAssistant .athikar-desk-routine-layer,
  #athikarDeskAssistant .athikar-desk-routine-layer * {
    animation: none !important;
    box-shadow: none !important;
    forced-color-adjust: auto;
  }

  #athikarDeskAssistant :is(
    .athikar-desk-routine-page,
    .athikar-desk-routine-thought,
    .athikar-desk-routine-screen,
    .athikar-desk-routine-base
  ) {
    border-color: CanvasText;
    background: Canvas;
    color: CanvasText;
  }

  #athikarDeskAssistant .athikar-desk-routine-pen,
  #athikarDeskAssistant .athikar-desk-routine-thought > span,
  #athikarDeskAssistant .athikar-desk-routine-screen::after {
    background: CanvasText;
  }

  #athikarDeskDock[data-athikar-desk-routine-stage="read"] #athikarDeskAssistant .athikar-desk-routine-book::after {
    top: 50%;
    background: Highlight;
    opacity: 1;
  }

  #athikarDeskDock[data-athikar-desk-routine-stage="review"] #athikarDeskAssistant .athikar-desk-routine-book {
    outline: 2px solid Highlight;
    outline-offset: 1px;
  }

  html[data-athikar-desk-attention] :is(
    #athikarDeskDock[data-athikar-dock-open="true"],
    #floatingAthikarDeskButton[data-state="off"]:not([hidden]),
    .sidebar-rail-footer-layer:not([hidden]) [data-sidebar-rail-footer-action="athikar"]:not([hidden])
  ) {
    animation: none !important;
    filter: none !important;
    outline: 2px solid Highlight !important;
    outline-offset: -2px;
  }

  #athikarDeskDock[data-athikar-desk-preview="attention"] {
    animation: none !important;
    filter: none !important;
    outline: 2px solid Highlight !important;
    outline-offset: -2px;
  }
}
