.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12,3rem) var(--space-8,2rem);text-align:center;min-height:400px;animation:fadeIn .3s ease-out}.error-icon{font-size:5rem;margin-bottom:var(--space-6,1.5rem);animation:errorShake .5s ease-in-out;filter:drop-shadow(0 4px 8px rgba(239,68,68,.2))}@keyframes errorShake{0%,to{transform:translateX(0) rotate(0deg)}10%,30%,50%,70%,90%{transform:translateX(-8px) rotate(-3deg)}20%,40%,60%,80%{transform:translateX(8px) rotate(3deg)}}.error-state h3{color:var(--color-text-primary,#0f4c75);font-size:var(--text-3xl,1.875rem);margin-bottom:var(--space-4,1rem);font-weight:var(--font-bold,700);letter-spacing:-.5px}.error-message{color:var(--color-text-secondary,#666);font-size:var(--text-lg,1.125rem);margin-bottom:var(--space-8,2rem);max-width:500px;line-height:var(--leading-relaxed,1.625)}.error-actions{display:flex;gap:var(--space-4,1rem);flex-wrap:wrap;justify-content:center}.offline-btn,.retry-btn{padding:var(--space-4,1rem) var(--space-8,2rem);font-size:var(--text-base,1rem);font-weight:var(--font-semibold,600);border-radius:var(--radius-lg,12px);border:none;cursor:pointer;transition:var(--transition-all);display:flex;align-items:center;gap:var(--space-2,.5rem);position:relative;overflow:hidden}.offline-btn:before,.retry-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:width .6s,height .6s}.offline-btn:active:before,.retry-btn:active:before{width:300px;height:300px}.retry-btn{background:linear-gradient(135deg,var(--color-primary-500,#0f4c75),var(--color-primary-600,#0c3d5f));color:white;box-shadow:var(--shadow-md)}.retry-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary,0 10px 30px -5px rgba(15,76,117,.3))}.retry-btn:active{transform:translateY(0)}.offline-btn{background:var(--color-gray-100,#f0f0f0);color:var(--color-text-primary,#333);box-shadow:var(--shadow-sm)}.offline-btn:hover{background:var(--color-gray-200,#e0e0e0);transform:translateY(-2px);box-shadow:var(--shadow-md)}.offline-btn:active{transform:translateY(0)}@media (max-width:640px){.error-state{padding:2rem 1rem;min-height:300px}.error-icon{font-size:3rem}.error-state h3{font-size:1.25rem}.error-actions{flex-direction:column;width:100%}.offline-btn,.retry-btn{width:100%;justify-content:center}}