.boot{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--bg);opacity:0;transition:opacity .22s ease}
.boot.view-ready{opacity:1}
.boot-logo{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#4ca7ff,#006be8);box-shadow:0 12px 30px #007aff48;color:#fff;animation:bootFloat 1.8s ease-in-out infinite}
.boot-copy{display:grid;gap:3px;text-align:center}.boot-copy b{font-size:18px;letter-spacing:-.35px}.boot-copy span{color:var(--secondary);font-size:12px}
.boot-skeleton{display:flex;gap:6px;margin-top:7px}.boot-skeleton i{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:dotPulse 1.15s ease-in-out infinite}.boot-skeleton i:nth-child(2){animation-delay:.14s}.boot-skeleton i:nth-child(3){animation-delay:.28s}

.shell,.login{opacity:1}
.shell.view-ready .top-copy,.shell.view-ready .filters,.shell.view-ready .table-wrap,.shell.view-ready .mobile-car-list{animation:pageIn .26s cubic-bezier(.2,.75,.25,1) both}
.dashboard-grid>*{opacity:0;animation:cardIn .42s cubic-bezier(.2,.8,.25,1) forwards}
.dashboard-grid>*:nth-child(1){animation-delay:.02s}.dashboard-grid>*:nth-child(2){animation-delay:.07s}.dashboard-grid>*:nth-child(3){animation-delay:.12s}.dashboard-grid>*:nth-child(4){animation-delay:.17s}.dashboard-grid>*:nth-child(5){animation-delay:.22s}
.status-card{opacity:0;animation:cardIn .38s cubic-bezier(.2,.8,.25,1) forwards}.status-card:nth-child(1){animation-delay:.10s}.status-card:nth-child(2){animation-delay:.14s}.status-card:nth-child(3){animation-delay:.18s}.status-card:nth-child(4){animation-delay:.22s}
.dashboard-car,.mobile-car-card{opacity:0;animation:rowIn .3s ease-out forwards}.dashboard-car:nth-child(1),.mobile-car-card:nth-child(1){animation-delay:.10s}.dashboard-car:nth-child(2),.mobile-car-card:nth-child(2){animation-delay:.14s}.dashboard-car:nth-child(3),.mobile-car-card:nth-child(3){animation-delay:.18s}.dashboard-car:nth-child(4),.mobile-car-card:nth-child(4){animation-delay:.22s}.dashboard-car:nth-child(5),.mobile-car-card:nth-child(5){animation-delay:.26s}
.sales-chart rect{transform-box:fill-box;transform-origin:center bottom;animation:barGrow .56s cubic-bezier(.2,.82,.2,1) both}.sales-chart rect:nth-of-type(3n+1){animation-delay:.08s}.sales-chart rect:nth-of-type(3n+2){animation-delay:.12s}.sales-chart rect:nth-of-type(3n){animation-delay:.16s}
.nav.active::after{content:"";position:absolute;top:12px;bottom:12px;left:-1px;width:3px;border-radius:0 4px 4px 0;background:#1687ff;animation:indicatorIn .24s ease-out}
.shell.silent-refresh .top-copy,.shell.silent-refresh .filters,.shell.silent-refresh .table-wrap,.shell.silent-refresh .mobile-car-list,.shell.silent-refresh .dashboard-grid>*,.shell.silent-refresh .status-card,.shell.silent-refresh .dashboard-car,.shell.silent-refresh .mobile-car-card,.shell.silent-refresh .sales-chart rect{opacity:1;transform:none;animation:none}

.modal-bg{animation:veilIn .16s ease-out both}.modal{animation:modalIn .24s cubic-bezier(.2,.82,.24,1) both}.modal-bg.is-closing{animation:veilOut .18s ease-in both;pointer-events:none}.modal-bg.is-closing .modal{animation:modalOut .18s ease-in both}
.dealer-fields:not([hidden]){animation:revealFields .22s cubic-bezier(.2,.8,.25,1) both}.sale-success-icon{animation:successPop .42s cubic-bezier(.2,1.4,.35,1) both}
.notice{animation:toastIn .28s cubic-bezier(.2,.85,.25,1) both}.notice.leaving{animation:toastOut .24s ease-in both}
.network-loader{position:fixed;top:max(14px,env(safe-area-inset-top));right:16px;z-index:30;display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid #ffffff18;border-radius:999px;background:rgba(24,27,31,.92);box-shadow:0 10px 28px #0005;color:var(--secondary);font-size:12px;font-weight:600;backdrop-filter:blur(18px);animation:loaderIn .24s ease}.network-loader.leaving{opacity:0;transform:translateY(-7px);transition:.18s}.network-loader i{width:14px;height:14px;border:2px solid #1687ff2c;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}
.btn,.nav,.round-action,.status-card,.mobile-car-card{will-change:transform}.btn:active,.nav:active,.round-action:active,.status-card:active,.mobile-car-card:active{transform:scale(.975)}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bootFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes dotPulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
@keyframes pageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:none}}
@keyframes rowIn{from{opacity:0;transform:translateX(-7px)}to{opacity:1;transform:none}}
@keyframes barGrow{from{transform:scaleY(0);opacity:.2}to{transform:scaleY(1);opacity:1}}
@keyframes indicatorIn{from{opacity:0;transform:scaleY(.4)}to{opacity:1;transform:scaleY(1)}}
@keyframes veilIn{from{opacity:0}to{opacity:1}}@keyframes veilOut{to{opacity:0}}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}@keyframes modalOut{to{opacity:0;transform:translateY(8px) scale(.985)}}
@keyframes revealFields{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes successPop{from{opacity:0;transform:scale(.55) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}
@keyframes loaderIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

@media(max-width:820px){.modal{animation-name:sheetIn}.modal-bg.is-closing .modal{animation-name:sheetOut}@keyframes sheetIn{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes sheetOut{to{opacity:0;transform:translateY(28px)}}}
@media(hover:hover) and (pointer:fine){.btn:hover,.round-action:hover,.status-card:hover,.dashboard-car:hover,.mobile-car-card:hover{transition-duration:.18s}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
