/* Interaction Polish V2 — tactile OS feedback with progressive enhancement.
   Visual animations never delay or simulate changes to persistent operational state. */
:root{
  --pwes-ease:cubic-bezier(.17,.78,.23,1);
  --pwes-feedback:rgba(166,244,116,.40);
  --pwes-edge:rgba(169,241,123,.70);
}
:is(button,[role="button"],a[href],summary,.room-desk,.property-record,.card.case,.card.property){
  -webkit-tap-highlight-color:transparent;
}
:is(button,[role="button"],a[href],summary,.room-desk):not(:disabled){
  transition:background-color .22s var(--pwes-ease),border-color .22s var(--pwes-ease),
    box-shadow .24s var(--pwes-ease),color .2s var(--pwes-ease),
    filter .16s ease,transform .18s var(--pwes-ease);
}
:is(button,[role="button"],.room-desk):not(:disabled):active,
:is(.property-record,.card.case,.card.property):active{
  transform:translate3d(0,2px,0) scale(.972);
  filter:brightness(1.20);
}
:is(button,[role="button"],a[href],summary,.room-desk,.property-record,.card.case,.card.property):focus-visible{
  outline:2px solid var(--lime,#b3f58c);
  outline-offset:3px;
}
@media(hover:hover) and (pointer:fine){
  :is(.property-record,.card.case,.card.property,.navbtn,.room-desk):hover{
    border-color:var(--pwes-edge);
    filter:brightness(1.07);
  }
  :is(button,[role="button"]):not(:disabled):hover{filter:brightness(1.09)}
}
.navbtn{position:relative}
.navbtn.active{
  color:#ddffbd;
  background:linear-gradient(90deg,rgba(121,197,102,.23),rgba(35,71,53,.82));
  box-shadow:inset 4px 0 var(--lime,#b2f18a),0 0 0 1px rgba(174,248,139,.30),
    0 0 19px rgba(125,219,109,.12);
}
.navbtn.active::before{
  content:"";width:6px;height:6px;border-radius:50%;
  position:absolute;right:13px;top:50%;transform:translateY(-50%);
  background:#b8ff84;box-shadow:0 0 9px #a6fa7a,0 0 19px #a6fa7a66;
  pointer-events:none;
}
.profile-tabs [role="tab"]{transition:color .18s ease,background .18s ease,box-shadow .20s ease}
.profile-tabs [role="tab"][aria-selected="true"]{
  color:#ddffb4;
  background:linear-gradient(0deg,rgba(142,224,92,.18),rgba(142,224,92,.015));
  box-shadow:inset 0 -2px #baf28b,0 4px 18px rgba(155,239,103,.07);
}
.room-desk[aria-pressed="true"]{
  background:linear-gradient(transparent 20%,rgba(159,230,106,.16));
  border-color:rgba(192,251,144,.75);
  box-shadow:inset 0 -3px #c6ff90,0 0 22px rgba(166,245,123,.18);
}
.room-desk[aria-pressed="true"] .desk-art{
  transform:translate3d(0,-3px,0) scale(1.025);
  filter:drop-shadow(0 8px 10px rgba(93,215,109,.30));
}
.room-desk .desk-art{transition:transform .24s var(--pwes-ease),filter .24s ease}
:is(.property-record,.card.case,.card.property){
  transition:border-color .20s ease,box-shadow .22s ease,transform .18s var(--pwes-ease),filter .18s ease;
}
:is(.property-record,.card.case,.card.property):focus-within{
  box-shadow:0 0 0 1px rgba(178,247,131,.25),0 0 24px rgba(109,224,110,.11);
}
.office-chat:focus-within{
  border-color:rgba(188,247,144,.72);
  box-shadow:0 0 0 1px rgba(183,255,125,.22),0 0 25px rgba(131,227,111,.12);
}
.office-drawer[open],.saved-review-drawer[open]{border-color:rgba(181,240,137,.56)}
.view.on{animation:pwes-panel-enter .31s var(--pwes-ease) both}
.view.on .bighead{animation:pwes-title-enter .32s var(--pwes-ease) both}
.profile-panel:not([hidden]){animation:pwes-panel-enter .26s var(--pwes-ease) both}
.overlay:not(.hidden) .modal{animation:pwes-modal-enter .25s var(--pwes-ease) both}
details[open] > :not(summary){animation:pwes-detail-enter .24s var(--pwes-ease) both}
#desk-spotlight > :first-child{animation:pwes-detail-enter .28s var(--pwes-ease) both}
.profile-heading{animation:pwes-title-enter .29s var(--pwes-ease) both}
@keyframes pwes-panel-enter{
  from{opacity:.23;transform:translate3d(0,14px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes pwes-title-enter{
  from{opacity:.4;transform:translate3d(-9px,0,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes pwes-modal-enter{
  from{opacity:.3;transform:translate3d(0,15px,0) scale(.968)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes pwes-detail-enter{
  from{opacity:.25;transform:translate3d(0,9px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
/* The tap lands where the finger/pointer actually touched. Visual-only and non-blocking. */
.pwes-acknowledged{position:relative}
:is(button,[role="button"],a[href],summary,.room-desk,.property-record,.card.case,.card.property).pwes-acknowledged::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;z-index:2;
  background:radial-gradient(circle 140px at var(--pwes-tap-x,50%) var(--pwes-tap-y,50%),
    rgba(205,255,164,.43),rgba(161,249,121,.16) 43%,transparent 76%);
  animation:pwes-impact .43s ease-out both;
}
@keyframes pwes-impact{
  0%{opacity:0;box-shadow:inset 0 0 0 1px rgba(170,241,131,.18),0 0 0 0 rgba(170,241,131,.22)}
  32%{opacity:1;box-shadow:inset 0 0 0 1px rgba(194,255,151,.50),0 0 0 2px rgba(174,244,132,.20)}
  100%{opacity:0;box-shadow:inset 0 0 0 1px transparent,0 0 0 7px transparent}
}
.pwes-haptic-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;font-size:11px;letter-spacing:.02em;line-height:1.3;
  text-align:left;margin:8px 0 10px;padding:10px 11px;
  border:1px solid rgba(152,222,122,.34);border-radius:9px;
  background:rgba(27,60,43,.62);color:#cceabe;cursor:pointer;
}
.pwes-haptic-toggle[aria-pressed="true"]{
  color:#e0ffd3;border-color:rgba(185,250,141,.63);
  box-shadow:inset 3px 0 rgba(181,249,129,.9);
}
.pwes-haptic-toggle .pwes-haptic-state{
  font-weight:800;color:#c7ff93;white-space:nowrap;
}
.pwes-haptic-toggle[aria-pressed="false"] .pwes-haptic-state{color:#a1b5a6}
@media(pointer:coarse){
  :is(button,[role="button"],.room-desk):not(:disabled):active{
    transform:translate3d(0,2px,0) scale(.963);
  }
}
@media(prefers-reduced-motion:reduce){
  .view.on,.view.on .bighead,.profile-panel:not([hidden]),.overlay:not(.hidden) .modal,
  details[open] > :not(summary),#desk-spotlight > :first-child,.profile-heading,
  .pwes-acknowledged,.pwes-acknowledged::after{animation:none!important}
  :is(button,[role="button"],a[href],summary,.room-desk):not(:disabled),
  .room-desk .desk-art,.profile-tabs [role="tab"],
  :is(.property-record,.card.case,.card.property){transition:none!important}
  :is(button,[role="button"],.room-desk):not(:disabled):active,
  :is(.property-record,.card.case,.card.property):active{transform:none!important;filter:none!important}
  .pwes-acknowledged::after{content:none!important}
}
