/* Small feedback, shared across public pages and the private workspace. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
button,a,[role=button]{touch-action:manipulation}
button,.button,[role=button]{-webkit-user-select:none;user-select:none}
button:disabled{cursor:wait}
.button,.circle-link,.close-dialog,.menu-button,.project-link,.text-link,.service,.order-row{transition:scale 120ms var(--ease-out),transform 160ms var(--ease-out),background-color 160ms ease,border-color 160ms ease,color 160ms ease}
.button:active:not(:disabled),.circle-link:active,.close-dialog:active,.menu-button:active,.project-link:active,.text-link:active,.service:active,.order-row:active{scale:.97;transition-duration:100ms}
.close-dialog,.menu-button{min-width:44px;min-height:44px}
.button>.ui-icon,.project-link>.ui-icon,.text-link>.ui-icon{transition:transform 160ms var(--ease-out)}
.service .square,.service .ring,.service .triangle{transition:transform 180ms var(--ease-out)}
.service:focus-visible .square,.service:focus-visible .ring{transform:scale(1.08)}
.service:focus-visible .triangle{transform:translateX(-3px)}
:is(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--orange);outline-offset:4px}
summary{touch-action:manipulation}
dialog{scrollbar-gutter:stable;overscroll-behavior:contain}
.mobile-menu:not([hidden]){transform-origin:top right;animation:menu-arrive 180ms var(--ease-out)}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){
  .button:hover>.ui-icon,.project-link:hover>.ui-icon,.text-link:hover>.ui-icon{transform:translate(-2px,-2px)}
  .service:hover .square,.service:hover .ring{transform:scale(1.08)}
  .service:hover .triangle{transform:translateX(-3px)}
}
@media(pointer:coarse){
  form input:not([type=checkbox]):not([type=radio]),form select,form textarea,.filter-bar input,.filter-bar select,#order-status{font-size:16px}
  .service-options label{min-height:44px;display:flex;align-items:center}
}
@media(max-width:760px){
  body{padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px)}
  dialog{max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding-bottom:calc(23px + env(safe-area-inset-bottom,0px))}
  .mobile-menu{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
}
@media(prefers-reduced-motion:reduce){
  .mobile-menu:not([hidden]){animation:none}
  .button,.circle-link,.close-dialog,.menu-button,.project-link,.text-link,.service,.order-row{transition:none}
  .button:active,.circle-link:active,.close-dialog:active,.menu-button:active,.project-link:active,.text-link:active,.service:active,.order-row:active{scale:1}
  .service .square,.service .ring,.service .triangle,.button>.ui-icon,.project-link>.ui-icon,.text-link>.ui-icon{transform:none!important;transition:none}
}
