:root { --primary-color: #007aff; --secondary-color: #5ac8fa; --background-color: #f5f5f7; --text-color: #1d1d1f; --light-gray: #d1d1d6; --dark-gray: #8e8e93; --success-color: #34c759; --danger-color: #ff3b30; --warning-color: #ff9500; --border-radius: 8px; --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --bottom-nav-height: 60px; --side-nav-width: 250px; --header-height: 60px; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; background-color: var(--background-color); color: var(--text-color); line-height: 1.5; } #root { min-height: 100vh; display: flex; flex-direction: column; } /* App container */ .app-container { flex: 1; display: flex; flex-direction: column; max-width: 100%; } /* Mobile layout */ .mobile-layout .content-area { padding: var(--spacing-md); padding-bottom: calc(var(--bottom-nav-height) + var(--spacing-md)); } /* Desktop layout */ .desktop-layout { flex-direction: row; } .desktop-layout .content-area { flex: 1; margin-left: var(--side-nav-width); padding: var(--spacing-lg); } /* Page styling */ .page { max-width: 1200px; margin: 0 auto; } /* Typography */ h1 { font-size: 24px; font-weight: 600; margin-bottom: var(--spacing-lg); } h2 { font-size: 20px; font-weight: 500; margin-bottom: var(--spacing-md); } h3 { font-size: 18px; font-weight: 500; margin-bottom: var(--spacing-md); } /* Form elements */ .form-group { margin-bottom: var(--spacing-lg); } label { display: block; margin-bottom: var(--spacing-xs); font-weight: 500; } input, select, textarea { width: 100%; padding: var(--spacing-sm); border: 1px solid var(--light-gray); border-radius: var(--border-radius); font-size: 16px; background-color: white; } input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary-color); } /* Buttons */ .btn { display: inline-block; padding: 10px 16px; border: none; border-radius: var(--border-radius); font-size: 16px; font-weight: 500; cursor: pointer; transition: all 0.2s; text-align: center; } .btn-primary { background-color: var(--primary-color); color: white; } .btn-secondary { background-color: var(--light-gray); color: var(--text-color); } .btn-success { background-color: var(--success-color); color: white; } .btn-danger { background-color: var(--danger-color); color: white; } .btn-block { display: block; width: 100%; } /* Cards */ .card { background-color: white; border-radius: var(--border-radius); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: var(--spacing-lg); margin-bottom: var(--spacing-lg); } /* Lists */ .list-item { padding: var(--spacing-md); border-bottom: 1px solid var(--light-gray); } .list-item:last-child { border-bottom: none; } /* Utilities */ .text-center { text-align: center; } .text-right { text-align: right; } .flex { display: flex; } .flex-col { flex-direction: column; } .justify-between { justify-content: space-between; } .items-center { align-items: center; } .mt-sm { margin-top: var(--spacing-sm); } .mt-md { margin-top: var(--spacing-md); } .mt-lg { margin-top: var(--spacing-lg); } .mb-sm { margin-bottom: var(--spacing-sm); } .mb-md { margin-bottom: var(--spacing-md); } .mb-lg { margin-bottom: var(--spacing-lg); } /* Responsive layouts */ @media (max-width: 767px) { h1 { font-size: 22px; } h2 { font-size: 18px; } }