@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--vh: 100dvh;--app-height: calc(100dvh - var(--safe-area-top) - var(--safe-area-bottom));--bp-mobile: 0px;--bp-tablet: 768px;--bp-desktop: 1024px;--bp-lg-desktop: 1440px;--container-mobile-width: 100%;--container-mobile-padding: 16px;--container-tablet-width: 756px;--container-tablet-padding: 24px;--container-desktop-width: 1000px;--container-desktop-padding: 32px;--container-lg-width: 1376px;--container-lg-padding: 48px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--color-primary: #2e7d72;--color-primary-dark: #256a61;--color-primary-light: #3aa493;--color-primary-bg: rgba(46, 125, 114, .1);--color-primary-hover: rgba(46, 125, 114, .12);--color-border-focus: #2e7d72;--color-secondary: #FB7185;--color-secondary-light: #FCA5B4;--color-secondary-dark: #F43F5E;--color-secondary-bg: rgba(251, 113, 133, .1);--z-dropdown: 100;--z-sticky: 1000;--z-fixed: 5000;--z-modal: 10000;--z-notification: 30000;--z-bottom-nav: 20000;--z-overlay: 12000;--z-drawer: 12001;--bn-safe-area-base: env(safe-area-inset-bottom, 0px);--bn-safe-area-fixed: var(--bn-safe-area-base);--bn-height: calc(64px + max(8px, env(safe-area-inset-bottom, 0px))) ;--keyboard-inset: 0px;--topbar-height: 0px;--bottom-nav-height: 0px;--table-available-height: 100dvh;--drawer-fade-duration: .3s;--drawer-slide-duration: .4s;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}@supports (padding-bottom: constant(safe-area-inset-bottom)){:root{--bn-safe-area-base: constant(safe-area-inset-bottom)}}html:not(.dark-theme){--color-bg-secondary: #ffffff}html.light-theme{--color-bg-secondary: #ffffff !important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.5;scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%;overscroll-behavior:contain;overflow-x:hidden;min-height:calc(100% + var(--safe-area-top));width:100%}html,body{min-height:100%;max-width:100%}body{margin:0;padding:0;padding-top:var(--safe-area-top);padding-right:var(--safe-area-right);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color var(--transition-fast),background-color var(--transition-fast);overscroll-behavior:contain;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;width:100%}#root{flex:1 0 auto;display:flex;flex-direction:column;min-height:100%;overflow:visible;width:100%;-webkit-overflow-scrolling:touch}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}h1{font-size:clamp(1.75rem,5vw,2.25rem);line-height:1.2;margin-bottom:var(--spacing-lg)}h2{font-size:clamp(1.5rem,4vw,1.875rem);margin-bottom:var(--spacing-lg)}h3{font-size:clamp(1.25rem,3vw,1.5rem);margin-bottom:var(--spacing-md)}h4{font-size:clamp(1.125rem,2vw,1.25rem);margin-bottom:var(--spacing-sm)}h5{font-size:clamp(1rem,1.5vw,1.125rem);font-weight:600}h6{font-size:1rem;font-weight:600}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary);line-height:1.6}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:2px}code,pre,kbd,samp{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.875em;background:var(--color-bg-tertiary);padding:.125rem .25rem;border-radius:var(--radius-sm);color:var(--color-text-primary)}pre{padding:var(--spacing-md);overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border-light)}pre code{background:none;padding:0}input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;margin:0}.full-height{height:100vh;height:100svh;min-height:100vh;min-height:100svh}@media (max-width: 768px){body,#root{padding-right:0!important;padding-left:0!important}body.requisitions-page-mobile,body.inventory-page-mobile,body.orders-page-mobile,body.purchasing-page-mobile,body.receiving-page-mobile{overflow:hidden!important}input,select,textarea,.modern-search-box,.compact-filter-select,.compact-date-input,.sheet-input,.sheet-select{font-size:16px!important}}input,textarea,select{background:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);padding:var(--spacing-md);transition:all var(--transition-fast);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #0f766e1a}@media (max-width: 768px){input:focus,textarea:focus,select:focus,.modern-search-box:focus,.search-input:focus,.compact-filter-select:focus,.compact-date-input:focus,.sheet-input:focus,.sheet-select:focus,.adj-input:focus,.modern-input:focus,.modern-select:focus{outline:none;border-color:var(--color-primary, #2e7d72)!important;box-shadow:0 0 0 3px #2e7d721f!important}}input:disabled,textarea:disabled,select:disabled{background:var(--color-bg-tertiary);color:var(--color-text-disabled);cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-xs);white-space:nowrap}.btn:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-xs)}.btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.btn:disabled{background:var(--color-gray-300);color:var(--color-text-disabled);cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-medium)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-dark)}.btn-ghost{background:transparent;color:var(--color-text-primary);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--color-bg-secondary);box-shadow:none;transform:none}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:13px}.btn-lg{padding:var(--spacing-lg) var(--spacing-2xl);font-size:16px}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.card-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.card-description{color:var(--color-text-secondary);font-size:14px;margin:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.auth-error-message{position:fixed;top:20px;left:50%;transform:translate(-50%);background:var(--color-error);color:#fff;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-weight:500;z-index:10000;box-shadow:var(--shadow-lg);animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-sm{font-size:14px}.text-xs{font-size:12px}.text-lg{font-size:18px}.mb-0{margin-bottom:0}.mt-0{margin-top:0}.space-y-2>*+*{margin-top:var(--spacing-sm)}.space-y-4>*+*{margin-top:var(--spacing-lg)}.space-y-6>*+*{margin-top:var(--spacing-2xl)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}::selection{background:#4a5568;color:#fff}::-moz-selection{background:#4a5568;color:#fff}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@keyframes drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide-up{0%{opacity:0;transform:translateY(100%)}70%{opacity:1;transform:translateY(-2%)}to{opacity:1;transform:translateY(0)}}@keyframes drawer-content-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes drawer-fade-out{0%{opacity:1}to{opacity:0}}@keyframes drawer-content-disappear{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}.vaul-overlay[data-state=open]{animation:drawer-fade-in var(--drawer-fade-duration, .3s) ease-out both;pointer-events:auto}.vaul-overlay[data-state=closed]{animation:drawer-fade-out var(--drawer-fade-duration, .25s) ease-in both;pointer-events:none}.vaul-content[data-state=open]{pointer-events:auto}.vaul-content[data-state=closed]{pointer-events:none}.vaul-content{transition:opacity var(--drawer-fade-duration, .3s) ease-out}.vaul-content[data-state=open] .vaul-body,.vaul-content[data-state=open]>div:first-child{animation:drawer-content-appear var(--drawer-slide-duration, .4s) cubic-bezier(.16,1,.3,1) both}.vaul-content[data-state=closed] .vaul-body,.vaul-content[data-state=closed]>div:first-child{animation:drawer-content-disappear var(--drawer-slide-duration, .3s) cubic-bezier(.2,0,.2,1) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.vaul-overlay,.vaul-content,.vaul-content .vaul-body,.vaul-content>div:first-child{animation:none!important;transition:none!important}}@media (prefers-contrast: high){.card{border-width:2px}.btn{border:2px solid currentColor}}.inv-modal-overlay{z-index:1000!important}.inv-modal-content{z-index:1001!important;margin:0 24px!important;padding-top:16px!important;padding-bottom:16px!important}.inv-modal-content .modal-header .modal-close{background:transparent;border:1px solid var(--color-border, #e5e7eb);border-radius:10px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #6b7280);transition:background .16s ease,color .16s ease,border-color .16s ease,transform .12s ease}.inv-modal-content .modal-header .modal-close:hover{background:var(--color-primary-bg, rgba(46,125,114,.1));color:var(--color-primary, #2e7d72);border-color:var(--color-primary, #2e7d72)}.inv-modal-content .modal-header .modal-close:active{transform:translateY(.5px)}.inv-btn-add-another{background:var(--color-primary-bg, rgba(46,125,114,.1));border:1px dashed var(--color-primary, #2e7d72);color:var(--color-primary, #2e7d72);font-weight:700}.inv-btn-add-another:hover{background:var(--color-primary, #2e7d72);color:#fff;border-style:solid}.inv-modal-content .btn-save{background:var(--color-primary, #2e7d72)!important;border:1px solid var(--color-primary, #2e7d72)!important;color:#fff!important}.inv-modal-content .btn-save:hover{background:var(--color-primary-dark, #256a61)!important}.inv-modal-content .add-item-remove{position:relative!important;top:0!important;right:0!important;width:28px;height:28px;border-radius:10px!important;border:1px solid var(--color-border, #e5e7eb)!important;background:#fff!important;color:#ef4444!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 1px 2px #0000000a!important;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .12s ease!important}.inv-modal-content .add-item-remove:hover{background:#fee2e2!important;border-color:#ef4444!important}.inv-modal-content .add-item-remove:active{transform:translateY(.5px)!important}.inv-modal-content .inv-btn-add-another{background:var(--color-primary-bg, rgba(46,125,114,.1))!important;border:1px dashed var(--color-primary, #2e7d72)!important;color:var(--color-primary, #2e7d72)!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important;font-weight:500!important;font-size:13px!important;padding:8px 14px!important;border-radius:8px!important;transition:all .16s ease!important}.inv-modal-content .inv-btn-add-another:hover{background:var(--color-primary, #2e7d72)!important;color:#fff!important;border-style:solid!important}.inv-modal-content .modal-body>div:last-child{padding-bottom:16px!important}.inv-modal-content .add-items-header{font-size:11px!important;padding:4px 2px!important}.inv-modal-content .add-items-row{padding:4px 2px!important}.inv-modal-content .add-items-input,.inv-modal-content .add-items-select{font-size:13px!important;padding:6px 8px!important;height:32px!important}.inv-modal-content .add-items-dropzone{width:64px!important;height:64px!important}.inv-modal-content .add-items-dropzone .hint{font-size:9px!important}input,textarea,select{-webkit-user-select:text;user-select:text}@supports (-webkit-touch-callout: none){input,textarea{font-size:16px!important}body{position:fixed;width:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}}.error-boundary-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#f8f9fa;padding:20px}.error-boundary-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:40px;max-width:500px;width:100%;text-align:center}.error-icon{display:flex;justify-content:center;margin-bottom:24px;color:#dc3545}.error-boundary-content h1{font-size:24px;font-weight:600;color:#212529;margin-bottom:16px}.error-message{font-size:16px;color:#495057;margin-bottom:12px}.error-details{font-size:14px;color:#6c757d;margin-bottom:32px;line-height:1.5}.error-actions{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.error-button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.error-button.primary{background-color:#0f766e;color:#fff}.error-button.primary:hover{background-color:#0d6b63;transform:translateY(-1px);box-shadow:0 2px 4px #0f766e33}.error-button.secondary{background-color:#e9ecef;color:#495057}.error-button.secondary:hover{background-color:#dee2e6}.error-debug{margin-top:32px;text-align:left;border-top:1px solid #e9ecef;padding-top:16px}.error-debug summary{cursor:pointer;font-size:12px;color:#6c757d;margin-bottom:8px}.error-debug pre{font-size:11px;background-color:#f8f9fa;padding:12px;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#495057}@media (max-width: 480px){.error-boundary-content{padding:24px}.error-actions{flex-direction:column;width:100%}.error-button{width:100%}}.modern-loader-container{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:#fffffff2;z-index:9999;margin:0!important;padding:0!important;box-sizing:border-box;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dark-theme .modern-loader-container{background:#111827f2}.modern-loader{position:relative;display:flex;align-items:center;justify-content:center;overflow:visible}.modern-loader-icon-container{position:relative;display:flex;align-items:center;justify-content:center;z-index:2}.modern-circle-loader{position:relative;border-radius:50%;background:conic-gradient(#111827 10%,#11182700 10%);-webkit-mask:radial-gradient(circle at center,transparent 52%,#000 53%);mask:radial-gradient(circle at center,transparent 52%,#000 53%);animation:circleSpin 1s linear infinite;filter:none!important}.modern-css-spinner{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:80px;min-height:80px}.spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid #e5e7eb;border-top-color:var(--color-primary, #0F766E);border-radius:50%;animation:simpleSpin 1s linear infinite;box-shadow:0 4px 12px #0f766e33}.spinner-logo{position:relative;width:50%;height:50%;object-fit:contain;border-radius:8px;animation:none;image-rendering:-webkit-optimize-contrast;backface-visibility:hidden;transform:translateZ(0);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}@keyframes simpleSpin{to{transform:rotate(360deg)}}@keyframes circleSpin{to{transform:rotate(360deg)}}.modern-loader-sun-rays{position:absolute;width:100%;height:100%;color:#fb7185;animation:smoothSpin 2s linear infinite;transition:all .3s ease;filter:drop-shadow(0 2px 4px rgba(251,113,133,.2))}.modern-loader-inventory-icon{position:relative;width:60%;height:60%;color:#fb7185;z-index:3;filter:drop-shadow(0 2px 8px rgba(251,113,133,.4));animation:subtlePulse 2s ease-in-out infinite}.modern-loader-icon{position:relative;z-index:2;color:#fb7185;animation:smoothSpin 1.5s linear infinite;transition:all .3s ease}.modern-loader-icon svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(251,113,133,.2))}.modern-loader-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.modern-loader-spinner{position:relative;display:flex;align-items:center;justify-content:center}.modern-loader-backdrop{display:none}.modern-loader-text{color:#111827;font-size:14px;font-weight:600;text-align:center;animation:fadeInOut 2s ease-in-out infinite;letter-spacing:.5px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.modern-loader-sm .modern-loader-icon,.modern-loader-sm .modern-loader-icon-container{width:auto;height:auto}.modern-loader-sm .modern-loader-text{font-size:12px}.modern-loader-md .modern-loader-icon,.modern-loader-md .modern-loader-icon-container{width:auto;height:auto}.modern-loader-md .modern-loader-text{font-size:14px}.modern-loader-lg .modern-loader-icon,.modern-loader-lg .modern-loader-icon-container{width:auto;height:auto}.modern-loader-lg .modern-loader-text{font-size:16px}@keyframes smoothSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInOut{0%,to{opacity:.4}50%{opacity:1}}@keyframes gentlePulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}}@keyframes subtlePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.dark-theme .modern-loader-icon,.dark-theme .modern-loader-sun-rays,.dark-theme .modern-loader-inventory-icon{color:#fb7185}.dark-theme .modern-loader-text{color:#9ca3af}.dark-theme .modern-loader-backdrop{background:radial-gradient(circle,rgba(251,113,133,.15) 0%,transparent 70%)}@media (prefers-reduced-motion: reduce){.modern-loader-icon{animation:none;transform:scale(1);opacity:1}.modern-loader-text{animation:none;opacity:1}.modern-loader-backdrop{animation:none;opacity:.1}}.modern-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.modern-loading-container .modern-loader-text{margin-top:var(--spacing-lg);font-size:16px;color:#111827;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--color-background)}.global-import-status{position:fixed;bottom:24px;right:24px;z-index:9999;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;padding:16px 20px;min-width:320px;max-width:400px;display:flex;align-items:center;gap:16px;animation:slideInUp .3s ease-out}@keyframes slideInUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.import-status-content{flex:1;display:flex;flex-direction:column;gap:8px}.import-status-header{display:flex;align-items:center;gap:8px;color:#0d9488}.import-status-title{font-weight:600;font-size:14px;color:#374151}.import-status-progress{display:flex;flex-direction:column;gap:4px}.progress-bar-container{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#0d9488,#14b8a6);transition:width .3s ease}.progress-text{font-size:12px;color:#6b7280}.import-paused-message{display:flex;align-items:center;gap:6px;color:#f59e0b;font-size:12px;font-weight:500}.import-status-controls{display:flex;align-items:center;gap:8px}.import-control-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;transition:all .2s}.import-control-btn:hover{background:#f9fafb;border-color:#d1d5db}.pause-btn{color:#f59e0b}.pause-btn:hover{background:#fef3c7;border-color:#f59e0b}.resume-btn{color:#0d9488}.resume-btn:hover{background:#ccfbf1;border-color:#0d9488}.cancel-btn{color:#dc2626}.cancel-btn:hover{background:#fee2e2;border-color:#dc2626}@media (max-width: 640px){.global-import-status{bottom:80px;right:16px;left:16px;min-width:auto;max-width:none}}.pwa-install-prompt{position:fixed;top:20px;right:20px;z-index:100000;animation:slideInRight .4s cubic-bezier(.16,1,.3,1);max-width:380px}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.pwa-install-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:16px;padding:18px 20px;display:flex;align-items:center;gap:16px;box-shadow:0 12px 40px #667eea66,0 4px 12px #0003;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.pwa-install-icon{flex-shrink:0;width:48px;height:48px;background:#fff3;border-radius:14px;display:flex;align-items:center;justify-content:center;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.pwa-install-text{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.pwa-install-text strong{font-size:16px;font-weight:700;color:#fff}.pwa-install-text span{font-size:13px;color:#ffffffe6;line-height:1.4}.pwa-install-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pwa-install-btn{border:none;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;font-family:inherit}.pwa-install-primary{background:#fff;color:#667eea;padding:10px 20px;border-radius:10px;box-shadow:0 2px 8px #00000026}.pwa-install-primary:hover{background:#f0f4ff;transform:translateY(-2px);box-shadow:0 4px 14px #0003}.pwa-install-primary:active{transform:translateY(0)}.pwa-install-dismiss{background:#ffffff26;color:#fff;padding:8px;border-radius:8px;width:36px;height:36px}.pwa-install-dismiss:hover{background:#ffffff40}@media (max-width: 768px){.pwa-install-prompt{top:calc(74px + env(safe-area-inset-top));left:10px;right:10px;max-width:none}.pwa-install-content{padding:14px 16px;gap:12px}.pwa-install-icon{width:44px;height:44px}.pwa-install-text strong{font-size:15px}.pwa-install-text span{font-size:12px}.pwa-install-primary{padding:8px 16px;font-size:13px}.pwa-install-dismiss{width:32px;height:32px}}@media (max-width: 480px){.pwa-install-text span{display:none}}.ios-install-prompt{position:fixed;top:0;left:0;right:0;z-index:10000;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.ios-install-content{background:#fff;border-radius:16px;padding:1.5rem;max-width:500px;margin:0 auto;box-shadow:0 20px 60px #0000004d;position:relative}.ios-install-close{position:absolute;top:1rem;right:1rem;background:#f3f4f6;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#6b7280}.ios-install-close:hover{background:#e5e7eb;color:#374151}.ios-install-close:active{transform:scale(.95)}.ios-install-header{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:flex-start}.ios-install-icon{width:60px;height:60px;border-radius:14px;overflow:hidden;box-shadow:0 4px 12px #00000026;flex-shrink:0}.ios-install-icon img{width:100%;height:100%;object-fit:cover}.ios-install-title h3{margin:0 0 .25rem;font-size:1.25rem;font-weight:700;color:#111827}.ios-install-title p{margin:0;font-size:.875rem;color:#6b7280;line-height:1.4}.ios-install-instructions{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:#f9fafb;border-radius:12px}.ios-install-step{display:grid;grid-template-columns:24px 32px 1fr;gap:.75rem;align-items:center}.ios-install-step-number{width:24px;height:24px;border-radius:50%;background:#2e7d72;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.ios-install-step-icon{width:32px;height:32px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;color:#2e7d72;box-shadow:0 2px 4px #0000001a}.ios-install-step-text{font-size:.875rem;color:#374151;line-height:1.4}.ios-install-step-text strong{color:#111827;font-weight:600}.ios-install-actions{display:flex;flex-direction:column;gap:.75rem}.ios-install-btn-primary,.ios-install-btn-secondary{width:100%;padding:.875rem 1.5rem;border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s;border:none}.ios-install-btn-primary{background:#2e7d72;color:#fff}.ios-install-btn-primary:hover{background:#256b61}.ios-install-btn-primary:active{transform:scale(.98)}.ios-install-btn-secondary{background:#f3f4f6;color:#6b7280}.ios-install-btn-secondary:hover{background:#e5e7eb;color:#374151}.ios-install-btn-secondary:active{transform:scale(.98)}@media (max-width: 640px){.ios-install-prompt{padding:.75rem}.ios-install-content{padding:1.25rem}.ios-install-icon{width:50px;height:50px}.ios-install-title h3{font-size:1.125rem}.ios-install-title p{font-size:.8125rem}.ios-install-step{grid-template-columns:20px 28px 1fr;gap:.5rem}.ios-install-step-number{width:20px;height:20px;font-size:.6875rem}.ios-install-step-icon{width:28px;height:28px}.ios-install-step-icon svg{width:16px;height:16px}.ios-install-step-text{font-size:.8125rem}}.ios-share-guide{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:10001;display:flex;flex-direction:column;align-items:center;animation:bounceIn .5s ease-out;pointer-events:none}@keyframes bounceIn{0%{transform:translate(-50%) scale(.5);opacity:0}50%{transform:translate(-50%) scale(1.1)}to{transform:translate(-50%) scale(1);opacity:1}}.ios-share-arrow{animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.ios-share-hint{background:#2e7d72;color:#fff;padding:12px 20px;border-radius:20px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 24px #2e7d7266;margin-top:-10px}.ios-share-hint p{margin:0;font-weight:600;font-size:14px;white-space:nowrap}@media (prefers-color-scheme: dark){.ios-install-content{background:#1f2937}.ios-install-title h3{color:#f9fafb}.ios-install-title p{color:#9ca3af}.ios-install-instructions{background:#111827}.ios-install-step-icon{background:#374151}.ios-install-step-text{color:#d1d5db}.ios-install-step-text strong{color:#f9fafb}.ios-install-close{background:#374151;color:#9ca3af}.ios-install-close:hover{background:#4b5563;color:#d1d5db}.ios-install-btn-secondary{background:#374151;color:#9ca3af}.ios-install-btn-secondary:hover{background:#4b5563;color:#d1d5db}}.App{min-height:100vh;min-height:-webkit-fill-available;min-height:100svh;min-height:100dvh;background:var(--color-bg-primary);color:var(--color-text-primary);transition:background-color var(--transition-fast),color var(--transition-fast);text-align:center;width:100%;flex:1 1 auto;align-items:stretch;display:flex;flex-direction:column}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;padding:20px;color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100svh;height:100dvh;min-height:100vh;min-height:100svh;min-height:100dvh;background-color:#f5f5f5}.modern-loader-container *{box-sizing:border-box}.loading-spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-error-message{position:fixed;top:20px;left:50%;transform:translate(-50%);background-color:#f8d7da;color:#721c24;padding:12px 24px;border-radius:8px;border:1px solid #f5c6cb;box-shadow:0 2px 8px #0000001a;z-index:9999;font-weight:500;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.loading-container p{color:#666;font-size:16px;margin:0}
