/* Shared interaction layer. Never transform app/scroll/dock ancestors. */
:root{--pt-motion:cubic-bezier(.22,.7,.2,1);--pt-depth:0 2px 4px #27352005,0 12px 28px -14px #27352028,0 28px 60px -32px #27352030;--pt-depth-hover:0 3px 6px #27352008,0 18px 36px -18px #27352038,0 32px 70px -30px #27352030}
:is(.card,.quick-action,.pt-bonus-card,.tariff-option,.meal-block,.page-hero,.routine-hero,.kb-hero){box-shadow:var(--pt-depth);border:1px solid #ffffff80;animation:pt-soft-appear .5s var(--pt-motion) both;transition:box-shadow .3s var(--pt-motion),border-color .25s,background-color .25s}
:is(.page-hero,.routine-hero,.kb-hero){background:linear-gradient(125deg,#fffdf6ed,#f5f1e3b8);border-radius:24px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.card.dark{border-color:#ffffff1a;box-shadow:var(--pt-depth)}
:is(.columns,.stack,.quick-actions){gap:clamp(16px,2vw,24px)}
.columns>*{min-width:0}
:is(.btn,.quick-action,.action-card,.day-chip,.nav-button,.tariff-option,.pt-plan-choice,.kb-card,.rt-slot,.routine-launch button,#eda .opt,#eda .btn,.pt-plan-dialog button,.pt-bonus button,.pt-bonus a,summary){transition:transform .22s var(--pt-motion),box-shadow .3s var(--pt-motion),background-color .25s,border-color .25s,color .25s;touch-action:manipulation}
:is(.action-card,.tariff-option){cursor:pointer}
#eda #pt-micro .opt{box-shadow:var(--pt-depth)}
:is(.section-food-art,.pt-micro-symbol img,.pt-plan-choice img,.pt-bonus-screen img){transition:transform .4s var(--pt-motion)}
:is(.btn,.quick-action,.action-card,.day-chip,.nav-button,.tariff-option,.pt-plan-choice,.kb-card,.rt-slot,.routine-launch button,#eda .opt,#eda .btn,.pt-plan-dialog button,.pt-bonus button,.pt-bonus a,summary):focus-visible{outline:3px solid #b8892a;outline-offset:4px}
.action-card:focus-within{outline:2px solid #b8892a;outline-offset:3px}
@media(hover:hover) and (pointer:fine){
 :is(.btn,.quick-action,.action-card,.tariff-option,.pt-plan-choice,.kb-card,.rt-slot,.routine-launch button,#eda #pt-micro .opt,.pt-bonus button,.pt-bonus a):not(:disabled):hover{transform:scale(1.05);box-shadow:var(--pt-depth-hover)}
 :is(.card,.pt-bonus-card):hover{box-shadow:var(--pt-depth-hover)}
 :is(.action-card,.page-hero,.routine-hero,.kb-hero):hover .section-food-art,.pt-bonus-screen button:hover img{transform:scale(1.05)}
}
:is(.btn,.quick-action,.action-card,.day-chip,.nav-button,.tariff-option,.pt-plan-choice,.kb-card,.rt-slot,.routine-launch button,#eda #pt-micro .opt,.pt-bonus button,.pt-bonus a):not(:disabled):active{transform:scale(.95)}
:is(button,.btn):disabled{cursor:not-allowed}
:is(dialog,.pt-plan-dialog){border:1px solid #ffffff80;box-shadow:0 8px 24px #1722111c,0 32px 96px #17221140}
dialog[open]{animation:pt-modal-appear .3s var(--pt-motion)}
dialog::backdrop{background:#1d291b70;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:pt-soft-appear .3s ease}
#pt-micro main,.pt-plan-step{animation:pt-soft-appear .5s var(--pt-motion)}
#view>.heading-row,#view>.card,#view>.summary-stats,#view>.columns>.stack>.card,#view>.saved-plan{animation:pt-soft-appear .5s var(--pt-motion) both}
@keyframes pt-soft-appear{from{opacity:0}to{opacity:1}}
@keyframes pt-modal-appear{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
