.screen-enter{animation:screenIn .22s ease-out}@keyframes screenIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.skeleton{background:linear-gradient(90deg,var(--sk-base) 25%,var(--sk-shine) 50%,var(--sk-base) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.card-interactive{transition:transform .15s ease,box-shadow .15s ease}.card-interactive:active{transform:scale(.98)}.btn-primary{border:none;border-radius:12px;padding:14px 0;width:100%;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s ease,transform .1s ease}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.7;cursor:default}.btn-outline{border-radius:10px;padding:10px 0;font-size:13px;font-weight:600;cursor:pointer;background:transparent;transition:background .15s ease}.input-field{transition:border-color .15s ease,box-shadow .15s ease}.input-field:focus{box-shadow:0 0 0 3px #0596691f}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:10px;font-weight:600;transition:background .15s ease,color .15s ease}.pulse-dot{animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.boat-marker{animation:boatPulse 2s ease-in-out infinite}@keyframes boatPulse{0%,to{r:6}50%{r:8}}.boat-ring{animation:ringExpand 2s ease-out infinite}@keyframes ringExpand{0%{r:12;opacity:.4}to{r:22;opacity:0}}.progress-fill{transition:width .8s ease}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.toast-enter{animation:toastIn .3s ease-out}.toast-exit{animation:toastOut .2s ease-in forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
