/* V157 — Strategic UX layer: premium cards, typography, navigation and motion.
   Additive only: existing layout, copy, database fields and operational logic stay intact. */
:root{--v157-red:#c8102e;--v157-ink:#202631;--v157-muted:#77808c;--v157-line:#e8ebef;--v157-ease:cubic-bezier(.2,.75,.25,1)}
.sf-card,.sf-operation-card,.operation-date-card,.final-phase-step,.sf-console-current-summary,.sf-console-bank-pending,.sf-terminal-market{transition:transform .28s var(--v157-ease),box-shadow .28s var(--v157-ease),border-color .28s var(--v157-ease),background-color .28s var(--v157-ease);will-change:transform}
@media(hover:hover) and (pointer:fine){
 .sf-card:hover,.sf-operation-card:hover,.operation-date-card:hover,.final-phase-step:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(25,35,50,.09);border-color:rgba(200,16,46,.22)}
 .sf-nav a:hover,.sf-tracker-nav a:hover{transform:translateX(3px)}
}
.sf-card,.sf-operation-card,.operation-date-card,.final-phase-step{position:relative;isolation:isolate}
.sf-card:focus-within,.sf-operation-card:focus-within,.operation-date-card:focus-within{outline:2px solid rgba(200,16,46,.24);outline-offset:2px}
.sf-operation-progress i,.sf-operation-progress>i,.operation-bar>i,.operation-subbar>i,.sf-console-bank-track>i,.sf-operation-progress i{transition:width .85s var(--v157-ease),filter .35s ease}
.sf-operation-percent,.operation-percent,.operation-node-percent,.operation-subbar em{font-variant-numeric:tabular-nums}
.sf-nav a,.sf-mobile-nav a,.sf-tracker-nav a{position:relative;transition:color .22s ease,background .22s ease,transform .22s var(--v157-ease),opacity .22s ease}
.sf-nav a .sf-ico,.sf-mobile-nav a span,.sf-tracker-nav a i{transition:transform .25s var(--v157-ease),filter .25s ease}
.sf-nav a.active .sf-ico,.sf-mobile-nav a.active span,.sf-tracker-nav a.current i{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 3px 5px rgba(0,0,0,.14))}
.sf-mobile-nav a.active:before{content:"";position:absolute;top:-8px;width:22px;height:3px;border-radius:0 0 4px 4px;background:#fff;opacity:.95}
.sf-mobile-nav a:active,.sf-nav a:active,.sf-tracker-nav a:active{transform:scale(.96)}
.sf-section-head h1,.sf-section-head h2,.sf-card h1,.sf-card h2,.sf-card h3{letter-spacing:-.025em;text-wrap:balance}
.sf-section-head,.sf-card .sf-kicker{animation:v157TitleIn .55s both}
.sf-card,.sf-operation-card,.operation-date-item{animation:v157CardIn .48s both}
.sf-card:nth-child(2),.sf-operation-card:nth-child(2){animation-delay:.035s}
.sf-card:nth-child(3),.sf-operation-card:nth-child(3){animation-delay:.07s}
.sf-card:nth-child(4),.sf-operation-card:nth-child(4){animation-delay:.105s}
.sf-mobile-nav{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.sf-mobile-nav a{ -webkit-tap-highlight-color:transparent }
.sf-main,.sf-content,.app{overscroll-behavior-x:contain}
.v157-swipe-hint{display:none}
@keyframes v157TitleIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes v157CardIn{from{opacity:.01;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.sf-card,.sf-operation-card,.operation-date-card,.final-phase-step{transition:box-shadow .22s ease,border-color .22s ease}.sf-mobile-nav a{min-height:44px}.sf-mobile-nav a:active span{transform:scale(.9)}}
@media(prefers-reduced-motion:reduce){.sf-card,.sf-operation-card,.operation-date-card,.final-phase-step,.sf-nav a,.sf-mobile-nav a,.sf-tracker-nav a,.sf-operation-progress i,.operation-bar>i,.operation-subbar>i{animation:none!important;transition:none!important;transform:none!important;scroll-behavior:auto!important}}
