.toast{max-width:min(460px,calc(100vw - 24px));gap:10px;overflow-wrap:anywhere}
.toast .f1{min-width:0}.toast .iconbtn{flex:none;width:26px;height:26px}.toast .btn-text{flex:none}
.toast-error{border-color:var(--bad)}
.reserved-error{display:block;min-height:20px;margin:0}
.finance-movements th:last-child,.finance-movements td:last-child{position:sticky;right:0;background:var(--surface);white-space:nowrap}
@media(max-width:1280px){.tbl td,.tbl th{padding:10px 8px}.tbl td{white-space:normal}.tbl .num{white-space:nowrap}}
.order-product-list{max-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r);padding:0 12px}
.order-product{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.order-product>div:first-child{min-width:0}.order-product .stepper input{width:66px;min-width:0;text-align:center;padding:4px;appearance:textfield}
.order-product .stepper input::-webkit-inner-spin-button{appearance:none}
.order-totals{display:grid;gap:8px;background:var(--surface-2);border-radius:var(--r);padding:16px;font-variant-numeric:tabular-nums}
.toasts{right:20px;left:auto;bottom:20px;transform:none;align-items:flex-end}
.save-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:save-spin .7s linear infinite}
@keyframes save-spin{to{transform:rotate(360deg)}}
.discard-confirm{position:absolute;inset:0;z-index:5;padding:24px;background:var(--surface);border-radius:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.modal,.drawer{position:relative}
.drawer{position:fixed}
.drawer>.m-h,.drawer>.m-f{flex-shrink:0}.drawer>.m-b{flex:1;min-height:0}
.drawer>.m-f{flex-wrap:wrap}.drawer>.m-f>.btn{flex:1 1 160px;justify-content:center;white-space:normal}
.boot-skeleton{max-width:1400px;margin:48px auto;padding:24px;display:grid;gap:24px}.skeleton-line,.skeleton-block{border-radius:var(--r);background:var(--surface-2);animation:skeleton-pulse 1s ease-in-out infinite alternate}.skeleton-line{height:38px;width:60%}.skeleton-block{height:140px}.skeleton-chart{height:320px}
main[aria-busy=true] .kpi-val{color:transparent;background:var(--surface-2);border-radius:var(--r);animation:skeleton-pulse 1s ease-in-out infinite alternate}
@keyframes skeleton-pulse{to{opacity:.45}}
@media(prefers-reduced-motion:reduce){.skeleton-line,.skeleton-block,main[aria-busy=true] .kpi-val{animation:none}}
.payment-confirmed{animation:payment-confirm .4s ease-out}.px-cost,.px-sum .badge{transition:color .2s,background .2s}.oc{animation:card-settle .18s ease-out}
@keyframes payment-confirm{from{box-shadow:inset 0 0 0 3px var(--good)}to{box-shadow:inset 0 0 0 0 transparent}}
@keyframes card-settle{from{transform:translateY(-3px);opacity:.75}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.payment-confirmed,.px-cost,.px-sum .badge{animation:none!important;transition:none!important}}
@media(max-width:820px){.toasts{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto;right:12px;left:12px;align-items:stretch}.toast{width:100%}}
@media(prefers-reduced-motion:reduce){.save-spinner{animation:none}.toast,.badge,.oc,.kpi{animation:none!important;transition:none!important}}
