#redlineApp .rlc-adoption,
#redlineApp .rlc-room {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  color: var(--rl-ink);
  background: #edf0eb;
}

#redlineApp .rlc-adoption {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  padding: calc(18px + var(--safe-top-inset, 0px)) 16px calc(16px + var(--safe-bottom-inset, 0px));
}

#redlineApp .rlc-page-head,
#redlineApp .rlc-room-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 8px;
}

#redlineApp .rlc-page-head > div,
#redlineApp .rlc-room-head > div {
  min-width: 0;
  text-align: center;
}

#redlineApp .rlc-page-head h1,
#redlineApp .rlc-room-head h1 {
  margin: 3px 0 0;
  overflow: hidden;
  font-family: var(--rl-serif);
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#redlineApp .rlc-page-head p {
  margin: 5px 0 0;
  color: var(--rl-muted);
  font-size: 10px;
  line-height: 1.35;
}

#redlineApp .rlc-icon-button {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(21, 21, 21, .14);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--rl-ink);
  background: rgba(255, 255, 255, .72);
}

#redlineApp .rlc-icon-button svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#redlineApp .rlc-adoption-scroll {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 2px 2px 14px;
}

#redlineApp .rlc-choice-stage {
  min-height: 190px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  border-top: 1px solid rgba(21, 21, 21, .13);
  border-bottom: 1px solid rgba(21, 21, 21, .13);
}

#redlineApp .rlc-choice-stage em {
  color: var(--rl-muted);
  font-family: var(--rl-serif);
  font-size: 12px;
  font-style: italic;
}

#redlineApp .rlc-choice-pet-art,
#redlineApp .rlc-pet-art {
  display: block;
  background-image: url('../assets/companion-pets-v2.svg');
  background-repeat: no-repeat;
  background-size: 300% 300%;
  filter: drop-shadow(0 12px 12px rgba(29, 31, 29, .13));
}

#redlineApp .rlc-choice-stage > .rlc-choice-pet-art {
  width: 150px;
  aspect-ratio: 1;
}

#redlineApp .rlc-choice-pet-art.is-cat,
#redlineApp .rlc-pet.is-cat .rlc-pet-art { background-position-x: 0%; }
#redlineApp .rlc-choice-pet-art.is-dog,
#redlineApp .rlc-pet.is-dog .rlc-pet-art { background-position-x: 50%; }
#redlineApp .rlc-choice-pet-art.is-rabbit,
#redlineApp .rlc-pet.is-rabbit .rlc-pet-art { background-position-x: 100%; }
#redlineApp .rlc-choice-pet-art.is-cream,
#redlineApp .rlc-pet.is-cream .rlc-pet-art { background-position-y: 0%; }
#redlineApp .rlc-choice-pet-art.is-charcoal,
#redlineApp .rlc-pet.is-charcoal .rlc-pet-art { background-position-y: 50%; }
#redlineApp .rlc-choice-pet-art.is-ginger,
#redlineApp .rlc-pet.is-ginger .rlc-pet-art { background-position-y: 100%; }

#redlineApp .rlc-form-block {
  padding: 15px 0;
  border-bottom: 1px solid rgba(21, 21, 21, .11);
}

#redlineApp .rlc-field-title,
#redlineApp .rlc-name-field > span {
  display: block;
  margin-bottom: 10px;
  color: #61645f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

#redlineApp .rlc-species-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#redlineApp .rlc-choice-pet {
  min-width: 0;
  min-height: 86px;
  padding: 8px;
  border: 1px solid rgba(21, 21, 21, .12);
  border-radius: 7px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .58);
}

#redlineApp .rlc-choice-pet.is-selected {
  border-color: var(--rl-red);
  box-shadow: inset 0 0 0 1px var(--rl-red);
}

#redlineApp .rlc-choice-pet .rlc-choice-pet-art {
  width: 58px;
  aspect-ratio: 1;
}

#redlineApp .rlc-choice-pet strong {
  font-size: 11px;
  font-weight: 600;
}

#redlineApp .rlc-coat-list {
  display: flex;
  gap: 18px;
}

#redlineApp .rlc-coat {
  min-height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #555852;
  background: transparent;
  font-size: 11px;
}

#redlineApp .rlc-coat i {
  width: 24px;
  height: 24px;
  border: 2px solid transparent;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(21, 21, 21, .2);
}

#redlineApp .rlc-coat.is-cream i { background: #e0d2b8; }
#redlineApp .rlc-coat.is-charcoal i { background: #474c4e; }
#redlineApp .rlc-coat.is-ginger i { background: #b56d3f; }
#redlineApp .rlc-coat.is-selected { color: var(--rl-ink); font-weight: 700; }
#redlineApp .rlc-coat.is-selected i { border-color: #fff; box-shadow: 0 0 0 2px var(--rl-red); }

#redlineApp .rlc-name-field {
  display: block;
  padding: 15px 0;
}

#redlineApp .rlc-name-field input {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(21, 21, 21, .14);
  border-radius: 7px;
  outline: 0;
  color: var(--rl-ink);
  background: rgba(255, 255, 255, .76);
  font-size: 15px;
}

#redlineApp .rlc-name-field input:focus { border-color: var(--rl-red); }

#redlineApp .rlc-ask-role,
#redlineApp .rlc-role-thought {
  width: 100%;
  min-height: 62px;
  padding: 12px;
  border: 1px solid rgba(21, 21, 21, .12);
  border-radius: 7px;
  text-align: left;
  background: rgba(255, 255, 255, .52);
}

#redlineApp .rlc-ask-role {
  color: var(--rl-red);
  font-size: 11px;
  font-weight: 700;
}

#redlineApp .rlc-role-thought span {
  color: var(--rl-red);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
}

#redlineApp .rlc-role-thought p {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
}

#redlineApp .rlc-role-thought.is-waiting,
#redlineApp .rlc-role-thought.is-quiet { color: var(--rl-muted); }

#redlineApp .rlc-room {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: #dfe4df;
}

#redlineApp .rlc-room-head {
  z-index: 8;
  min-height: calc(58px + var(--safe-top-inset, 0px));
  padding: var(--safe-top-inset, 0px) 12px 0;
  color: #202320;
  background: rgba(239, 241, 237, .93);
  border-bottom: 1px solid rgba(21, 21, 21, .12);
}

#redlineApp .rlc-room-head h1 { font-size: 22px; }

#redlineApp .rlc-scene {
  position: relative;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
  background-image: url('../assets/companion-room-v2.svg');
  background-repeat: no-repeat;
  background-position: center 56%;
  background-size: cover;
}

#redlineApp .rlc-room-light {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background: rgba(248, 245, 235, .06);
}

#redlineApp .rlc-room.is-night .rlc-room-light { background: rgba(17, 28, 38, .32); }
#redlineApp .rlc-room.is-evening .rlc-room-light { background: rgba(92, 45, 38, .12); }
#redlineApp .rlc-room.is-morning .rlc-room-light { background: rgba(245, 232, 191, .09); }

#redlineApp .rlc-pet {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 12%;
  width: clamp(132px, 40vw, 190px);
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  background: transparent;
  transform: translateX(-50%);
  touch-action: none;
}

#redlineApp .rlc-pet .rlc-pet-art {
  width: 100%;
  height: 100%;
  transition: transform 240ms ease;
}

#redlineApp .rlc-pet:active .rlc-pet-art,
#redlineApp .rlc-pet.action-pet .rlc-pet-art { transform: scale(.96) translateY(3px); }
#redlineApp .rlc-pet.action-feed .rlc-pet-art { animation: rlcNibble 620ms ease-in-out 2; }
#redlineApp .rlc-pet.action-play .rlc-pet-art { animation: rlcPlay 720ms ease-in-out 2; }
#redlineApp .rlc-pet.action-groom .rlc-pet-art { animation: rlcSoft 900ms ease-in-out; }
#redlineApp .rlc-pet.action-blanket .rlc-pet-art { transform: scale(.94, .88) translateY(12px); }

@keyframes rlcNibble { 50% { transform: translateY(5px) rotate(2deg); } }
@keyframes rlcPlay { 35% { transform: translate(-12px, -9px) rotate(-5deg); } 70% { transform: translate(11px, -5px) rotate(5deg); } }
@keyframes rlcSoft { 50% { transform: scale(1.03); filter: brightness(1.05); } }

#redlineApp .rlc-room-status {
  position: absolute;
  z-index: 5;
  left: 16px;
  top: 13px;
  max-width: calc(100% - 32px);
  padding: 9px 11px;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 7px;
  color: #202320;
  background: rgba(244, 245, 241, .86);
  box-shadow: 0 10px 22px rgba(29, 31, 29, .12);
}

#redlineApp .rlc-room-status strong,
#redlineApp .rlc-room-status span { display: block; }
#redlineApp .rlc-room-status strong { font-size: 12px; }
#redlineApp .rlc-room-status span { margin-top: 3px; color: #5d625c; font-size: 10px; }

#redlineApp .rlc-keepsake-slot {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 74px;
  height: 58px;
  border: 1px dashed rgba(21, 21, 21, .09);
}

#redlineApp .rlc-keepsake-slot.is-wall { left: 12%; top: 16%; }
#redlineApp .rlc-keepsake-slot.is-table { left: 19%; top: 49%; }
#redlineApp .rlc-keepsake-slot.is-window { right: 10%; top: 35%; }

#redlineApp .rlc-keepsake {
  width: 58px;
  height: 48px;
  padding: 5px;
  border: 1px solid rgba(21, 21, 21, .14);
  border-radius: 6px;
  display: grid;
  place-items: center;
  color: #2e3330;
  background: rgba(248, 247, 241, .88);
  box-shadow: 0 7px 16px rgba(20, 24, 21, .13);
  touch-action: none;
}

#redlineApp .rlc-keepsake svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#redlineApp .rlc-keepsake span { display: none; }
#redlineApp .rlc-keepsake.is-ticket { color: var(--rl-red); }
#redlineApp .rlc-keepsake.is-record { color: #202426; border-radius: 50%; }
#redlineApp .rlc-keepsake.is-postcard { color: #4f6858; }

#redlineApp .rlc-trace {
  position: absolute;
  z-index: 4;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
}

#redlineApp .rlc-trace i,
#redlineApp .rlc-trace i::after {
  position: absolute;
  content: '';
  border-radius: 50%;
  inset: 10px;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(143, 29, 44, .18), 0 0 20px rgba(255, 255, 255, .8);
  animation: none;
}

#redlineApp .rlc-trace.is-new i,
#redlineApp .rlc-trace.is-new i::after { animation: rlcTrace 1.7s ease-in-out infinite; }
#redlineApp .rlc-trace:not(.is-new) { display: none; }
#redlineApp .rlc-trace i::after { inset: -7px; opacity: .25; }
#redlineApp .rlc-trace.is-table { left: 33%; top: 52%; }
#redlineApp .rlc-trace.is-floor { left: 35%; bottom: 18%; }
#redlineApp .rlc-trace.is-bed { right: 14%; bottom: 17%; }
#redlineApp .rlc-trace.is-window { right: 17%; top: 28%; }
#redlineApp .rlc-trace.is-door { left: 7%; top: 43%; }
@keyframes rlcTrace { 50% { transform: scale(1.22); opacity: .58; } }

#redlineApp .rlc-event-card {
  position: absolute;
  z-index: 7;
  left: 50%;
  top: 16px;
  width: min(82%, 340px);
  min-height: 54px;
  padding: 12px 44px 12px 13px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 7px;
  background: rgba(246, 247, 243, .94);
  box-shadow: 0 18px 38px rgba(24, 28, 25, .18);
  transform: translateX(-50%);
}

#redlineApp .rlc-event-card p { margin: 0; font-size: 12px; line-height: 1.55; }
#redlineApp .rlc-event-card button { position: absolute; top: 7px; right: 7px; width: 34px; height: 34px; border: 0; background: transparent; font-size: 20px; }

#redlineApp .rlc-contact-note-strip {
  position: absolute;
  z-index: 6;
  left: 12px;
  right: 12px;
  bottom: 12px;
  min-width: 0;
  min-height: 52px;
  padding: 7px 10px 7px 7px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 8px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: #252925;
  text-align: left;
  background: rgba(246, 247, 243, .9);
  box-shadow: 0 12px 28px rgba(24, 28, 25, .16);
}

#redlineApp .rlc-contact-note-strip.is-new { border-color: rgba(143, 29, 44, .42); }
#redlineApp .rlc-contact-note-avatar { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; color: #fff; background: #656c66; font-size: 12px; }
#redlineApp .rlc-contact-note-avatar img { width: 100%; height: 100%; object-fit: cover; }
#redlineApp .rlc-contact-note-copy { min-width: 0; }
#redlineApp .rlc-contact-note-copy small,
#redlineApp .rlc-contact-note-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#redlineApp .rlc-contact-note-copy small { color: #6b706a; font-size: 9px; }
#redlineApp .rlc-contact-note-copy strong { margin-top: 2px; font-size: 12px; font-weight: 550; }
#redlineApp .rlc-contact-note-strip time { align-self: end; color: #777d77; font-size: 9px; white-space: nowrap; }

#redlineApp .rlc-tool-tray {
  z-index: 8;
  min-height: calc(72px + var(--safe-bottom-inset, 0px));
  padding: 7px 8px var(--safe-bottom-inset, 0px);
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: start;
  border-top: 1px solid rgba(21, 21, 21, .13);
  background: rgba(239, 241, 237, .96);
}

#redlineApp .rlc-tool {
  min-width: 0;
  min-height: 58px;
  padding: 5px 2px;
  border: 0;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 4px;
  color: #343936;
  background: transparent;
  touch-action: none;
}

#redlineApp .rlc-tool svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#redlineApp .rlc-tool span { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
#redlineApp .rlc-tool:active { color: var(--rl-red); transform: scale(.94); }

#redlineApp .rlc-sheet {
  position: absolute;
  z-index: 20;
  inset: 0;
  padding: 14px;
  display: flex;
  align-items: flex-end;
  background: rgba(18, 20, 19, .42);
}

#redlineApp .rlc-sheet[hidden],
#redlineApp .rlc-event-card[hidden] { display: none; }

#redlineApp .rlc-sheet > div {
  width: 100%;
  max-height: 78%;
  padding: 17px 14px calc(14px + var(--safe-bottom-inset, 0px));
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 8px;
  overflow: auto;
  color: var(--rl-ink);
  background: #f1f2ee;
  box-shadow: 0 -18px 44px rgba(19, 22, 20, .24);
}

#redlineApp .rlc-sheet strong { display: block; margin: 5px 0 12px; font-family: var(--rl-serif); font-size: 22px; font-weight: 500; }
#redlineApp .rlc-sheet textarea { width: 100%; min-height: 92px; padding: 11px; border: 1px solid rgba(21, 21, 21, .14); border-radius: 7px; resize: none; outline: 0; background: #fff; }
#redlineApp .rlc-sheet small { display: block; margin: 4px 0 9px; color: var(--rl-muted); text-align: right; }
#redlineApp .rlc-sheet .rl-primary-button,
#redlineApp .rlc-sheet .rl-secondary-button { width: 100%; margin-top: 7px; }

#redlineApp .rlc-sheet.is-history > div { display: flex; flex-direction: column; }
#redlineApp .rlc-sheet.is-history ol { min-height: 0; margin: 0 0 10px; padding: 0; overflow: auto; list-style: none; }
#redlineApp .rlc-sheet.is-history li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 9px; padding: 10px 2px; border-bottom: 1px solid rgba(21, 21, 21, .09); }
#redlineApp .rlc-sheet.is-history li > i { width: 7px; height: 7px; margin-top: 6px; border-radius: 50%; background: #8d918c; }
#redlineApp .rlc-sheet.is-history li > i.is-contact { background: var(--rl-red); }
#redlineApp .rlc-sheet.is-history li > i.is-user { background: #4c6857; }
#redlineApp .rlc-sheet.is-history li div { min-width: 0; }
#redlineApp .rlc-sheet.is-history li span { display: block; font-size: 12px; line-height: 1.45; }
#redlineApp .rlc-sheet.is-history li time { display: block; margin-top: 4px; color: var(--rl-muted); font-size: 9px; }
#redlineApp .rlc-sheet.is-history li.is-new span { font-weight: 650; }

.rlc-drag-ghost {
  position: fixed !important;
  z-index: 99999 !important;
  left: 0;
  top: 0;
  width: 52px !important;
  height: 52px !important;
  border-radius: 50%;
  display: grid !important;
  place-items: center;
  color: #fff;
  background: rgba(28, 31, 29, .85) !important;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(.92);
  box-shadow: 0 12px 26px rgba(0, 0, 0, .24);
}

.rlc-drag-ghost span { display: none !important; }
.rlc-drag-ghost svg { width: 24px; height: 24px; fill: none; stroke: currentColor; }

@media (max-height: 650px) {
  #redlineApp .rlc-adoption { gap: 7px; padding-top: calc(9px + var(--safe-top-inset, 0px)); }
  #redlineApp .rlc-choice-stage { min-height: 116px; }
  #redlineApp .rlc-choice-stage > .rlc-choice-pet-art { width: 96px; }
  #redlineApp .rlc-form-block { padding: 9px 0; }
  #redlineApp .rlc-choice-pet { min-height: 70px; padding: 4px; }
  #redlineApp .rlc-choice-pet .rlc-choice-pet-art { width: 44px; }
  #redlineApp .rlc-room-head { min-height: calc(50px + var(--safe-top-inset, 0px)); }
  #redlineApp .rlc-pet { width: min(31vh, 142px); bottom: 8%; }
  #redlineApp .rlc-tool-tray { min-height: calc(60px + var(--safe-bottom-inset, 0px)); padding-top: 3px; }
  #redlineApp .rlc-tool { min-height: 52px; }
  #redlineApp .rlc-tool svg { width: 21px; height: 21px; }
  #redlineApp .rlc-room-status { top: 7px; padding: 7px 9px; }
}

@media (orientation: landscape) and (max-height: 500px) {
  #redlineApp .rlc-adoption { grid-template-columns: minmax(0, 1fr) 164px; grid-template-rows: auto minmax(0, 1fr); }
  #redlineApp .rlc-adoption .rlc-page-head { grid-column: 1 / -1; }
  #redlineApp .rlc-adoption > .rl-primary-button { align-self: end; margin-bottom: var(--safe-bottom-inset, 0px); }
  #redlineApp .rlc-choice-stage { min-height: 98px; }
  #redlineApp .rlc-room { grid-template-columns: minmax(0, 1fr) 70px; grid-template-rows: auto minmax(0, 1fr); }
  #redlineApp .rlc-room-head { grid-column: 1 / -1; }
  #redlineApp .rlc-tool-tray { grid-row: 2; grid-column: 2; min-height: 0; padding: 4px 0 var(--safe-bottom-inset, 0px); grid-template-columns: 1fr; overflow: auto; border-top: 0; border-left: 1px solid rgba(21, 21, 21, .13); }
  #redlineApp .rlc-tool { min-height: 46px; }
  #redlineApp .rlc-tool span { display: none; }
  #redlineApp .rlc-scene { grid-row: 2; grid-column: 1; background-position: center 60%; }
  #redlineApp .rlc-pet { width: min(34vh, 132px); bottom: 5%; }
}

@media (prefers-reduced-motion: reduce) {
  #redlineApp .rlc-pet .rlc-pet-art,
  #redlineApp .rlc-trace i,
  #redlineApp .rlc-trace i::after { animation: none !important; transition: none !important; }
}

[data-reduce-motion="true"] #redlineApp .rlc-pet .rlc-pet-art,
[data-reduce-motion="true"] #redlineApp .rlc-trace i,
[data-reduce-motion="true"] #redlineApp .rlc-trace i::after { animation: none !important; transition: none !important; }

/* Companion v3: clear picture-book content layer with neutral glass controls. */
#redlineApp .rlc-adoption,
#redlineApp .rlc-room { color: #202320; background: #eef0ec; }
#redlineApp .rlc-adoption { gap: 10px; padding: calc(16px + var(--safe-top-inset, 0px)) 14px calc(14px + var(--safe-bottom-inset, 0px)); }
#redlineApp .rlc-adoption-scroll { padding: 0 2px 12px; }
#redlineApp .rlc-choice-stage { min-height: 210px; padding: 12px; border: 0; border-radius: 20px; background: #dfe5de; box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 12px 24px rgba(30,39,31,.1); }
#redlineApp .rlc-preview-room { position: relative; width: 100%; height: 100%; min-height: 184px; overflow: hidden; border-radius: 15px; background: var(--rlc-preview-bg) center/cover no-repeat, linear-gradient(135deg,#dbe6dc,#b8c6b7); }
#redlineApp .rlc-preview-room::after { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg,rgba(255,255,255,.05),rgba(20,28,20,.2)); pointer-events: none; }
#redlineApp .rlc-preview-pet { position: absolute; z-index: 1; right: 15%; bottom: 6%; width: min(42%,160px); height: auto; filter: drop-shadow(0 14px 12px rgba(25,30,25,.18)); }
#redlineApp .rlc-preview-caption { position: absolute; z-index: 2; left: 12px; bottom: 10px; color: #fff; font-size: 11px; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
#redlineApp .rlc-choice-pet-art { width: 64px; height: 58px; display: grid; place-items: end center; background: none; filter: none; }
#redlineApp .rlc-choice-pet-art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 7px 7px rgba(29,31,29,.14)); }
#redlineApp .rlc-choice-pet { min-height: 94px; border-radius: 14px; background: rgba(255,255,255,.62); }
#redlineApp .rlc-choice-pet.is-selected { border-color: #262b27; box-shadow: inset 0 0 0 1px #262b27, 0 6px 14px rgba(24,32,25,.08); }
#redlineApp .rlc-theme-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
#redlineApp .rlc-theme-choice { min-width: 0; padding: 0 0 7px; border: 1px solid rgba(21,21,21,.12); border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.58); text-align: left; }
#redlineApp .rlc-theme-choice span { display: block; aspect-ratio: 1.35; background: center/cover no-repeat; }
#redlineApp .rlc-theme-choice strong { display: block; padding: 7px 8px 0; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
#redlineApp .rlc-theme-choice.is-selected { border-color: #242924; box-shadow: inset 0 0 0 1px #242924; }

#redlineApp .rlc-room { grid-template-rows: auto minmax(0,1fr) auto; background: #d8e1d8; }
#redlineApp .rlc-room-head { min-height: calc(56px + var(--safe-top-inset,0px)); padding: var(--safe-top-inset,0px) 10px 0; background: rgba(249,250,247,.72); backdrop-filter: blur(20px) saturate(0); -webkit-backdrop-filter: blur(20px) saturate(0); }
#redlineApp .rlc-scene { background: none; }
#redlineApp .rlc-room-background { position: absolute; z-index: 0; inset: 0; background-position: center; background-size: cover; background-repeat: no-repeat; }
#redlineApp .rlc-room-light { z-index: 1; background: linear-gradient(180deg,rgba(255,255,255,.06),rgba(28,37,30,.14)); }
#redlineApp .rlc-furniture-layer,
#redlineApp .rlc-keepsake-layer { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
#redlineApp .rlc-furniture { position: absolute; left: var(--x); top: var(--y); z-index: var(--z); width: clamp(70px,24vw,168px); min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; transform: translate(-50%,-50%) scale(var(--scale)) rotate(var(--rotation)); transform-origin: center; pointer-events: auto; touch-action: none; }
#redlineApp .rlc-furniture[data-furniture-key="curtain"],
#redlineApp .rlc-furniture[data-furniture-key="wall-art"],
#redlineApp .rlc-furniture[data-furniture-key="pendant-lamp"] { width: clamp(58px,18vw,132px); }
#redlineApp .rlc-furniture[data-furniture-key="floor-lamp"],
#redlineApp .rlc-furniture[data-furniture-key="plant-shelf"],
#redlineApp .rlc-furniture[data-furniture-key="scratch-post"] { width: clamp(68px,20vw,142px); }
#redlineApp .rlc-furniture[data-furniture-key="rug-round"],
#redlineApp .rlc-furniture[data-furniture-key="pet-bed"],
#redlineApp .rlc-furniture[data-furniture-key="sofa-low"] { width: clamp(92px,30vw,204px); }
#redlineApp .rlc-furniture img { display: block; width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 9px 9px rgba(25,30,25,.2)); }
#redlineApp .rlc-furniture:active { transform: translate(-50%,-50%) scale(calc(var(--scale) * .96)) rotate(var(--rotation)); }
#redlineApp .rlc-pet { z-index: 5; width: clamp(160px,44vw,238px); bottom: 12%; }
#redlineApp .rlc-pet-art { display: grid; place-items: end center; width: 100%; height: 100%; background: none; filter: none; }
#redlineApp .rlc-pet-art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 15px 14px rgba(24,30,24,.2)); }
#redlineApp .rlc-interaction-effect { position: absolute; z-index: 6; left: 50%; bottom: 35%; width: 92px; height: 92px; opacity: 0; pointer-events: none; transform: translateX(-50%); background: center/contain no-repeat; }
#redlineApp .rlc-interaction-effect.is-pet { background-image: url('../assets/companion-v3/effect-touch.png'); animation: rlcEffectPop 900ms ease-out; }
#redlineApp .rlc-interaction-effect.is-feed { background-image: url('../assets/companion-v3/effect-food.png'); animation: rlcEffectPop 900ms ease-out; }
#redlineApp .rlc-interaction-effect.is-play { background-image: url('../assets/companion-v3/effect-play.png'); animation: rlcEffectPop 900ms ease-out; }
#redlineApp .rlc-interaction-effect.is-groom { background-image: url('../assets/companion-v3/effect-groom.png'); animation: rlcEffectPop 900ms ease-out; }
#redlineApp .rlc-interaction-effect.is-blanket { background-image: url('../assets/companion-v3/effect-blanket.png'); animation: rlcEffectPop 900ms ease-out; }
@keyframes rlcEffectPop { 0% { opacity: 0; transform: translate(-50%,8px) scale(.72); } 30% { opacity: .95; } 100% { opacity: 0; transform: translate(-50%,-26px) scale(1.08); } }

#redlineApp .rlc-tool-tray { position: relative; z-index: 12; grid-template-columns: repeat(5,minmax(0,1fr)); min-height: calc(64px + var(--safe-bottom-inset,0px)); padding: 5px 8px var(--safe-bottom-inset,0px); border-top: 1px solid rgba(20,25,21,.1); background: rgba(247,249,246,.78); backdrop-filter: blur(22px) saturate(0); -webkit-backdrop-filter: blur(22px) saturate(0); }
#redlineApp .rlc-tool { min-height: 52px; border-radius: 12px; }
#redlineApp .rlc-tool.is-active { color: #171b18; background: rgba(255,255,255,.66); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
#redlineApp .rlc-action-dock { position: absolute; z-index: 13; right: 9px; bottom: calc(66px + var(--safe-bottom-inset,0px)); left: 9px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; padding: 7px; border: 1px solid rgba(255,255,255,.72); border-radius: 18px; opacity: 0; pointer-events: none; background: rgba(248,249,246,.9); box-shadow: 0 16px 34px rgba(21,28,22,.17); transform: translateY(8px); transition: opacity 180ms ease,transform 180ms ease; }
#redlineApp .rlc-action-dock.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
#redlineApp .rlc-action-dock .rlc-tool { min-height: 50px; }
#redlineApp .rlc-furnishing-sheet > div { max-height: 84%; border-radius: 22px 22px 10px 10px; background: rgba(246,248,245,.96); backdrop-filter: blur(18px) saturate(0); -webkit-backdrop-filter: blur(18px) saturate(0); }
#redlineApp .rlc-furnishing-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin: 0 0 11px; padding: 4px; border-radius: 12px; background: rgba(20,25,21,.06); }
#redlineApp .rlc-furnishing-tabs button { min-height: 36px; border-radius: 9px; color: #606760; background: transparent; font-size: 11px; }
#redlineApp .rlc-furnishing-tabs button.is-selected { color: #171b18; background: #fff; box-shadow: 0 4px 12px rgba(21,28,22,.08); }
#redlineApp .rlc-furnishing-grid,
#redlineApp .rlc-theme-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; max-height: 42vh; overflow: auto; }
#redlineApp .rlc-furnishing-item,
#redlineApp .rlc-theme-card { min-width: 0; overflow: hidden; border: 1px solid rgba(21,25,21,.1); border-radius: 13px; background: rgba(255,255,255,.72); text-align: left; }
#redlineApp .rlc-furnishing-item img,
#redlineApp .rlc-theme-card span { display: block; width: 100%; aspect-ratio: 1.15; object-fit: contain; background: #e7ece6 center/cover no-repeat; }
#redlineApp .rlc-furnishing-item span,
#redlineApp .rlc-theme-card strong { display: block; padding: 7px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
#redlineApp .rlc-theme-card.is-selected { border-color: #262b27; box-shadow: inset 0 0 0 1px #262b27; }

@media (max-height: 650px) {
  #redlineApp .rlc-choice-stage { min-height: 150px; }
  #redlineApp .rlc-preview-room { min-height: 126px; }
  #redlineApp .rlc-preview-pet { width: 34%; }
  #redlineApp .rlc-furniture { width: clamp(60px,20vw,128px); }
  #redlineApp .rlc-furniture[data-furniture-key="rug-round"],
  #redlineApp .rlc-furniture[data-furniture-key="pet-bed"],
  #redlineApp .rlc-furniture[data-furniture-key="sofa-low"] { width: clamp(76px,25vw,164px); }
  #redlineApp .rlc-furniture[data-furniture-key="curtain"],
  #redlineApp .rlc-furniture[data-furniture-key="wall-art"],
  #redlineApp .rlc-furniture[data-furniture-key="pendant-lamp"] { width: clamp(50px,16vw,108px); }
  #redlineApp .rlc-pet { width: min(39vh,190px); bottom: 9%; }
  #redlineApp .rlc-action-dock { bottom: calc(59px + var(--safe-bottom-inset,0px)); }
}
@media (prefers-reduced-motion: reduce) {
  #redlineApp .rlc-action-dock,
  #redlineApp .rlc-interaction-effect { transition: none; animation: none !important; }
}
