.loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:var(--z-index-loading);display:flex;align-items:center;justify-content:center;overflow:hidden}body.loading-screen-active{overflow:hidden!important;height:100vh!important;max-height:100vh!important}.loading-background{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gradient-diagonal)}.loading-gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,rgba(43,182,163,.1) 0%,transparent 70%);animation:loadingPulse 4s ease-in-out infinite alternate}@keyframes loadingPulse{0%{opacity:.3;transform:scale(.8)}to{opacity:.6;transform:scale(1.2)}}.spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);z-index:2}.spinner{position:relative;width:80px;height:80px}.spinner-ring{position:absolute;width:100%;height:100%;border:var(--border-width-1) solid transparent;border-top:var(--border-width-1) solid var(--secondary);border-radius:var(--radius-full);animation:spin 1s var(--ease-linear) infinite}.loading-text{text-align:center;color:var(--text-white)}.loading-percentage{font-size:var(--font-size-5xl);font-weight:var(--font-weight-light);margin-bottom:var(--space-2);opacity:.9}.loading-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);opacity:.7;letter-spacing:var(--letter-spacing-wide)}.loading-logo-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-6);opacity:0;transition:opacity var(--duration-700) var(--ease-out)}.loading-logo-container.show{opacity:1}.loading-logo{width:200px;height:auto;filter:drop-shadow(var(--shadow-xl))}.loading-logo.fade-in{animation:fadeIn .2s ease-in-out .1s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-subtitle{color:#fffc;font-size:var(--font-size-xl);font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;margin-top:var(--space-4);opacity:.8;text-align:center}@media (min-width: 3440px){.spinner{width:140px;height:140px}.spinner-ring:nth-child(2){width:126px;height:126px;top:7px;left:7px}.spinner-ring:nth-child(3){width:98px;height:98px;top:21px;left:21px}.loading-percentage{font-size:clamp(5rem,5vw,6rem)}.loading-label{font-size:clamp(1.8rem,2vw,2.2rem)}.loading-logo{width:clamp(350px,28vw,450px)}.loading-subtitle{font-size:clamp(2rem,2.2vw,2.4rem)}.spinner-container{gap:var(--space-12)}.loading-logo-container{gap:var(--space-10)}}@media (min-width: 2560px) and (max-width: 3439px){.spinner{width:120px;height:120px}.spinner-ring:nth-child(2){width:108px;height:108px;top:6px;left:6px}.spinner-ring:nth-child(3){width:84px;height:84px;top:18px;left:18px}.loading-percentage{font-size:clamp(4rem,4.5vw,5rem)}.loading-label{font-size:clamp(1.5rem,1.8vw,1.8rem)}.loading-logo{width:clamp(300px,25vw,400px)}.loading-subtitle{font-size:clamp(1.75rem,2vw,2rem)}.spinner-container{gap:var(--space-12)}.loading-logo-container{gap:var(--space-10)}}@media (min-width: 1920px) and (max-width: 2559px){.spinner{width:100px;height:100px}.spinner-ring:nth-child(2){width:90px;height:90px;top:5px;left:5px}.spinner-ring:nth-child(3){width:70px;height:70px;top:15px;left:15px}.loading-percentage{font-size:clamp(3.5rem,4vw,4rem)}.loading-label{font-size:clamp(1.3rem,1.6vw,1.6rem)}.loading-logo{width:clamp(250px,22vw,350px)}.loading-subtitle{font-size:clamp(1.5rem,1.8vw,1.8rem)}.spinner-container{gap:var(--space-10)}.loading-logo-container{gap:var(--space-8)}}@media (min-width: 1440px) and (max-width: 1919px){.spinner{width:90px;height:90px}.spinner-ring:nth-child(2){width:81px;height:81px;top:4.5px;left:4.5px}.spinner-ring:nth-child(3){width:63px;height:63px;top:13.5px;left:13.5px}.loading-percentage{font-size:clamp(3rem,3.5vw,3.5rem)}.loading-label{font-size:clamp(1.2rem,1.4vw,1.4rem)}.loading-logo{width:clamp(220px,20vw,300px)}.loading-subtitle{font-size:clamp(1.4rem,1.6vw,1.6rem)}.spinner-container{gap:var(--space-8)}.loading-logo-container{gap:var(--space-6)}}@media (min-width: 1024px) and (max-width: 1439px){.spinner{width:85px;height:85px}.spinner-ring:nth-child(2){width:76.5px;height:76.5px;top:4.25px;left:4.25px}.spinner-ring:nth-child(3){width:59.5px;height:59.5px;top:12.75px;left:12.75px}.loading-percentage{font-size:clamp(2.75rem,3vw,3rem)}.loading-label{font-size:clamp(1.1rem,1.3vw,1.3rem)}.loading-logo{width:clamp(200px,18vw,280px)}.loading-subtitle{font-size:clamp(1.3rem,1.5vw,1.5rem)}.spinner-container{gap:var(--space-8)}.loading-logo-container{gap:var(--space-6)}}@media (min-width: 768px) and (max-width: 1023px){.spinner{width:75px;height:75px}.spinner-ring:nth-child(2){width:67.5px;height:67.5px;top:3.75px;left:3.75px}.spinner-ring:nth-child(3){width:52.5px;height:52.5px;top:11.25px;left:11.25px}.loading-percentage{font-size:clamp(2.5rem,2.8vw,2.8rem)}.loading-label{font-size:clamp(1rem,1.2vw,1.2rem)}.loading-logo{width:clamp(180px,16vw,250px)}.loading-subtitle{font-size:clamp(1.2rem,1.4vw,1.4rem)}.spinner-container{gap:var(--space-6)}.loading-logo-container{gap:var(--space-5)}}@media (min-width: 480px) and (max-width: 767px){.spinner{width:70px;height:70px}.spinner-ring:nth-child(2){width:63px;height:63px;top:3.5px;left:3.5px}.spinner-ring:nth-child(3){width:49px;height:49px;top:10.5px;left:10.5px}.loading-percentage{font-size:clamp(2.2rem,2.5vw,2.5rem)}.loading-label{font-size:clamp(.95rem,1.1vw,1.1rem)}.loading-logo{width:clamp(160px,14vw,220px)}.loading-subtitle{font-size:clamp(1.1rem,1.3vw,1.3rem)}.spinner-container{gap:var(--space-6)}.loading-logo-container{gap:var(--space-4)}}@media (min-width: 401px) and (max-width: 479px){.spinner{width:65px;height:65px}.spinner-ring:nth-child(2){width:58.5px;height:58.5px;top:3.25px;left:3.25px}.spinner-ring:nth-child(3){width:45.5px;height:45.5px;top:9.75px;left:9.75px}.loading-percentage{font-size:clamp(2rem,2.3vw,2.3rem)}.loading-label{font-size:clamp(.9rem,1.05vw,1.05rem)}.loading-logo{width:clamp(140px,13vw,200px)}.loading-subtitle{font-size:clamp(1rem,1.2vw,1.2rem)}.spinner-container{gap:var(--space-5)}.loading-logo-container{gap:var(--space-4)}}@media (min-width: 320px) and (max-width: 400px){.spinner{width:60px;height:60px}.spinner-ring:nth-child(2){width:54px;height:54px;top:3px;left:3px}.spinner-ring:nth-child(3){width:42px;height:42px;top:9px;left:9px}.loading-percentage{font-size:clamp(1.8rem,2.1vw,2.1rem)}.loading-label{font-size:clamp(.85rem,1vw,1rem)}.loading-logo{width:clamp(120px,12vw,180px)}.loading-subtitle{font-size:clamp(.95rem,1.1vw,1.1rem)}.spinner-container{gap:var(--space-5)}.loading-logo-container{gap:var(--space-3)}}@media (max-height: 500px) and (orientation: landscape){.spinner{width:50px;height:50px}.spinner-ring:nth-child(2){width:45px;height:45px;top:2.5px;left:2.5px}.spinner-ring:nth-child(3){width:35px;height:35px;top:7.5px;left:7.5px}.loading-percentage{font-size:clamp(1.6rem,1.8vw,1.8rem)}.loading-label{font-size:clamp(.8rem,.9vw,.9rem)}.loading-logo{width:clamp(100px,10vw,150px)}.loading-subtitle{font-size:clamp(.9rem,1.1vw,1.1rem)}.spinner-container{gap:var(--space-4)}.loading-logo-container{gap:var(--space-3)}}@media (pointer: coarse){.spinner{min-width:var(--touch-target-comfortable);min-height:var(--touch-target-comfortable)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.spinner-ring{border-width:.5px}.loading-logo{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@supports (container-type: inline-size){.loading-screen{container-type:inline-size}@container (min-width: 768px){.spinner-container{gap:var(--space-8)}}@container (min-width: 1024px){.spinner-container{gap:var(--space-10)}}}@media (prefers-reduced-motion: reduce){.loading-gradient,.spinner-ring{animation:none}.loading-logo,.loading-logo-container{transition:none}}@media print{.loading-screen{display:none}}.page-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--gradient-diagonal);display:flex;align-items:center;justify-content:center;z-index:9999}.page-loader-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.page-loader-spinner{position:relative;width:60px;height:60px}.spinner-ring{position:absolute;width:100%;height:100%;border:2px solid transparent;border-top:2px solid var(--secondary);border-radius:50%;animation:spin 1s linear infinite}.spinner-ring:nth-child(2){border-top-color:var(--secondary-light);width:90%;height:90%;top:5%;left:5%;animation-delay:.2s}.spinner-ring:nth-child(3){border-top-color:var(--text-white);width:70%;height:70%;top:15%;left:15%;animation-delay:.4s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-loader-text{color:var(--text-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);opacity:.8}@media (prefers-reduced-motion: reduce){.spinner-ring{animation:none}}.error-boundary{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--gradient-diagonal);display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-6)}.error-boundary-content{background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);padding:var(--space-8);max-width:500px;width:100%;text-align:center;box-shadow:var(--shadow-2xl);border:1px solid rgba(255,255,255,.2)}.error-icon{color:var(--error);margin-bottom:var(--space-6);display:flex;justify-content:center}.error-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-4)}.error-description{font-size:var(--font-size-lg);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-8)}.error-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.error-button{padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:none;cursor:pointer;transition:all .3s ease;min-width:120px}.error-button-primary{background:var(--primary);color:var(--text-white)}.error-button-primary:hover{background:var(--primary-dark);transform:translateY(-2px)}.error-button-secondary{background:transparent;color:var(--primary);border:2px solid var(--primary)}.error-button-secondary:hover{background:var(--primary);color:var(--text-white);transform:translateY(-2px)}.error-details{margin-top:var(--space-8);text-align:left;background:#0000000d;border-radius:var(--radius-lg);padding:var(--space-4)}.error-details summary{cursor:pointer;font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.error-stack,.error-component-stack{background:#0000001a;padding:var(--space-3);border-radius:var(--radius-md);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-sm);color:var(--text-primary);white-space:pre-wrap;overflow-x:auto;margin-top:var(--space-2)}.error-component-stack{margin-top:var(--space-4)}@media (max-width: 768px){.error-boundary{padding:var(--space-4)}.error-boundary-content{padding:var(--space-6)}.error-title{font-size:var(--font-size-xl)}.error-description{font-size:var(--font-size-base)}.error-actions{flex-direction:column;align-items:center}.error-button{width:100%;max-width:200px}}@media (prefers-contrast: high){.error-boundary-content{background:var(--bg-white);border:2px solid var(--primary-dark)}.error-button-primary{background:var(--primary-dark);border:2px solid var(--primary-dark)}.error-button-secondary{border:2px solid var(--primary-dark);color:var(--primary-dark)}}@media (prefers-reduced-motion: reduce){.error-button{transition:none}.error-button:hover{transform:none}}.error-fallback{display:flex;align-items:center;justify-content:center;padding:var(--space-8);min-height:200px;background:#ffffff0d;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.1)}.error-fallback-content{text-align:center;max-width:400px}.error-fallback-icon{color:var(--warning);margin-bottom:var(--space-4);display:flex;justify-content:center}.error-fallback-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-3)}.error-fallback-description{font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-6)}.error-fallback-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.error-fallback-button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;border:none;cursor:pointer;transition:all .3s ease;min-width:100px}.error-fallback-button-primary{background:var(--primary);color:var(--text-white)}.error-fallback-button-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.error-fallback-button-secondary{background:transparent;color:var(--primary);border:1px solid var(--primary)}.error-fallback-button-secondary:hover{background:var(--primary);color:var(--text-white);transform:translateY(-1px)}.error-fallback-details{margin-top:var(--space-6);text-align:left;background:#0000001a;border-radius:var(--radius-md);padding:var(--space-3)}.error-fallback-details summary{cursor:pointer;font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.error-fallback-stack{background:#0000001a;padding:var(--space-2);border-radius:var(--radius-sm);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-xs);color:var(--text-primary);white-space:pre-wrap;overflow-x:auto;margin-top:var(--space-2)}.error-fallback-page{min-height:400px;background:var(--gradient-diagonal)}.error-fallback-component{min-height:150px}.error-fallback-network{min-height:200px}.error-fallback-network .error-fallback-icon{color:var(--error)}@media (max-width: 768px){.error-fallback{padding:var(--space-6);min-height:150px}.error-fallback-title{font-size:var(--font-size-base)}.error-fallback-description{font-size:var(--font-size-sm)}.error-fallback-actions{flex-direction:column;align-items:center}.error-fallback-button{width:100%;max-width:200px}}@media (prefers-contrast: high){.error-fallback{background:var(--bg-white);border:2px solid var(--primary-dark)}.error-fallback-button-primary{background:var(--primary-dark);border:2px solid var(--primary-dark)}.error-fallback-button-secondary{border:2px solid var(--primary-dark);color:var(--primary-dark)}}@media (prefers-reduced-motion: reduce){.error-fallback-button{transition:none}.error-fallback-button:hover{transform:none}}
