:root{--primary-color: #3B82F6;--primary-dark: #2563EB;--secondary-color: #10B981;--danger-color: #EF4444;--warning-color: #F59E0B;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--border-radius: 8px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--bg-primary: #ffffff;--bg-secondary: #f9fafb;--text-primary: #111827;--text-secondary: #6b7280;--border-color: #e5e7eb}.dark-theme{--gray-50: #1F2937;--gray-100: #374151;--gray-200: #4B5563;--gray-300: #6B7280;--gray-400: #9CA3AF;--gray-500: #D1D5DB;--gray-600: #E5E7EB;--gray-700: #F3F4F6;--gray-800: #F9FAFB;--gray-900: #FFFFFF;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--bg-primary: #1f2937;--bg-secondary: #111827;--text-primary: #f9fafb;--text-secondary: #d1d5db;--border-color: #374151}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}body{background-color:var(--bg-secondary);color:var(--text-primary);font-size:16px;line-height:1.6}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1140px}}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}@media (max-width: 575.98px){.d-sm-none{display:none!important}.d-sm-block{display:block!important}.d-sm-flex{display:flex!important}}@media (min-width: 576px) and (max-width: 767.98px){.d-md-none{display:none!important}.d-md-block{display:block!important}.d-md-flex{display:flex!important}}@media (min-width: 768px) and (max-width: 991.98px){.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}}@media (min-width: 992px){.d-xl-none{display:none!important}.d-xl-block{display:block!important}.d-xl-flex{display:flex!important}}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.pwa-install-prompt{position:fixed;bottom:20px;left:20px;right:20px;background:#fff;padding:1rem;border-radius:10px;box-shadow:0 4px 20px #00000026;z-index:1000;display:none}.pwa-install-prompt.show{display:block}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.7}to{transform:scale(1);opacity:1}}.pulse{animation:pulse 2s infinite}@media (hover: none) and (pointer: coarse){button,.btn,a{min-height:44px;min-width:44px}button:hover,.btn:hover{transform:none}}.container-fluid{width:100%;padding:0 1rem;margin:0 auto}.btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;text-align:center;text-decoration:none;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;min-height:44px;line-height:1.2}.btn.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.btn.btn-primary:active{transform:translateY(0)}.btn.btn-secondary{background:#6c757d;color:#fff}.btn.btn-secondary:hover{background:#545b62}.btn.btn-success{background:#28a745;color:#fff}.btn.btn-success:hover{background:#218838}.btn.btn-danger{background:#dc3545;color:#fff}.btn.btn-danger:hover{background:#c82333}.btn.btn-block{width:100%;display:block}.btn.btn-lg{padding:1rem 2rem;font-size:1.1rem;min-height:48px}.btn.btn-sm{padding:.5rem 1rem;font-size:.9rem;min-height:40px}.form-control{width:100%;padding:.75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;border:2px solid #e1e5e9;border-radius:8px;transition:border-color .3s ease,box-shadow .3s ease;min-height:44px}.form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-control.is-invalid{border-color:#dc3545}.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#495057;font-weight:600;font-size:1rem}.card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem;margin-bottom:1.5rem}.card .card-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f8f9fa}.card .card-header h1,.card .card-header h2,.card .card-header h3,.card .card-header h4,.card .card-header h5,.card .card-header h6{margin:0;color:#333;font-weight:700}.card .card-body{flex:1}.card .card-footer{margin-top:1.5rem;padding-top:1rem;border-top:2px solid #f8f9fa}@supports (-webkit-touch-callout: none){.form-control{font-size:16px}}@media (max-width: 575.98px){.container,.container-fluid{padding:0 .75rem}.card{padding:1rem;margin-bottom:1rem}.btn{padding:.875rem 1.25rem;font-size:1rem;min-height:48px}.form-control{padding:.875rem .75rem;font-size:16px;min-height:48px}.form-group{margin-bottom:1.25rem}}@supports (padding: max(0px)){.safe-area-inset-top{padding-top:max(1rem,env(safe-area-inset-top))}.safe-area-inset-bottom{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.safe-area-inset-left{padding-left:max(1rem,env(safe-area-inset-left))}.safe-area-inset-right{padding-right:max(1rem,env(safe-area-inset-right))}}
